Forum Webscript.Ru
Общие => Базы данных => Тема начата: Greg от 23 Марта 2006, 08:01:46
-
условия: есть таблица, столбцами которой являются:
id, head, text, source_id
нужно вывести 3 записи, в которых значения столбца source_id различны
база Interbase, но думаю можно посмотреть примеры и для других СУБД
-
Greg
Mysql:
SELECT DISTINCT source_id, id, head, text
FROM sometbl
LIMIT 3
вот еще:
SELECT id, head, text, source_id
FROM sometbl
GROUP BY source_id
LIMIT 3
-
for_i_0
да, спасибо, чего-то не сразу дошёл...
теперь такой вопрос, можно ли выудить из таблицы случайные 3 записи?
как вариант рассматривают генерить PHP слуайные ID и по ним уже искать в базе... но полученные ID могут и не существовать (запись удалена и т.д.)
лучше как нибуть бы запросом
-
Greg
пожалуй:
SELECT * FROM table ORDER BY rand() LIMIT 3
-
for_i_0
м-м-м... в Interbase никак не катит
чтож будем извращаться
-
Greg
погоди, успеешь... а так ?
SELECT * , id *0 + rand( ) AS chanse
FROM `table`
ORDER BY chance
LIMIT 3
-
for_i_0
функция rand вообще в Interbase не определена, похоже, это только в MySQL она есть
-
Greg
и все таки предется поизвращатся :) в обеих случаях используется rand(). Насколько я понял Interbase не поддерживает rand().