Вот как так отсортировать выборку

Leonid

PHP? нет, не слышал...
Вот как так отсортировать выборку

В таблице есть поле 'field_name'

Есть несколько, ну пусть 3 переменных:
$var1 = 'значение 1';
$var2 = 'значение 2';
$var3 = 'значение 3';

Делаем выборку из таблицы с 3 строчками:

Select * from table where 'field_name' = '$var1' or 'field_name' = '$var2' or 'field_name' = '$var3'

так вот, надо чтобы в выборке строки были именно в таком же порядке, как и переменные. 1 - 2 - 3. А то может получиться, что сначала идет строка со значением var2, потом var1 потом var3.
 

Leonid

PHP? нет, не слышал...
полазал по форуму. FIND_IN_SET ПРИМЕНЯЕТСЯ ДЛЯ ID с числовыми начениями. а у меня строковые. Во всяком случае вылезает ошибка...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума

Leonid

PHP? нет, не слышал...
select * from images where modul = 'catalog' and record_id = 4 and ( fieldname = 'prev_good_image' or fieldname = 'good_image' or fieldname = 'good_image_big' ) order by find_in_set('fieldname', 'prev_good_image','good_image','good_image_big')


1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''good_image','good_image_big')

-~{}~ 20.02.09 00:17:

и вообще не понимаю, как можно делать order by по результату функции find_in_set, которая возвращает только одно значение...

-~{}~ 20.02.09 00:24:

вот такой запрос сработал

select * from images where modul = 'catalog' and record_id = 4 and ( fieldname = 'prev_good_image' or fieldname = 'good_image' or fieldname = 'good_image_big' ) order by find_in_set(fieldname, 'prev_good_image,good_image,good_image_big')

-~{}~ 20.02.09 00:25:

хорошо что в значениях prev_good_image,good_image,good_image_big нет запятых у меня...
 
Сверху