Простой SELECT по порядку

kiruxa_dnp

Новичок
Простой SELECT по порядку

Добрый день

возникла такая проблемка

есть группа ID по которым надо сделать выборку

например - 11, 33, 22, 55, 44


Я делаю запрос


SELECT * FROM tbl WHERE id in (11, 33, 22, 55, 44)


Все правильно выбираеться только порядок не соблюден в fetch_array - выдаеться как находит по таблице 11,22,33,44,55 .... мне надо чтобы выбралось именно как я хотел ... 11, 33, 22, 55, 44 ... подскажите как прописать в ORDERe чтобы выбралося именно как надо

спасибо
 

kiruxa_dnp

Новичок
да надо чтобы выпрало в порядке 11, 33, 22, 55, 44 оно выбирает по порядку из бызы ... поскольку поле автоинкремент ... то выбирает 11,22,33,44,55
 

kiruxa_dnp

Новичок
я прочитал,

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

вот здесь

помоему это не то

мне надо SELECT * FROM tbl WHERE id in (11, 33, 22, 55, 44) ORDER (11, 33, 22, 55, 44)

-~{}~ 18.03.08 13:25:

может я просто чегото не доганяю как этим FIND_IN_SET пользоваться?
 

Mr_Max

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

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
kiruxa_dnp
Тебе не кажется странным пихать
фиг его знает куда и как?

Тебе сортировка нужна или фиг значет что?
 

kiruxa_dnp

Новичок
http://www.geekyboy.com/archives/21 - вот тут пишут

SELECT * WHERE FIND_IN_SET('$state_id', `assoc_state`)>0;

-~{}~ 18.03.08 13:40:

SELECT * FROM tbl WHERE FIND_IN_SET('11, 33, 22, 55, 44', id)
????

ну не мучай подскажи если знаешь :( уже пол интернета перерыл найти не могу
 

kiruxa_dnp

Новичок
#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 - вот что возвращает

-~{}~ 18.03.08 13:42:

мне сортировка нужна
может просто не поддерживает мускл эту функцию?
 

kiruxa_dnp

Новичок
SELECT * FROM tbl WHERE id IN (11, 33, 22, 55, 44) ORDER BY FIND_IN_SET (id, '11, 33, 22, 55, 44')

щас рожу ..

Возвращает значение от 1 до ..., в зависимости от позиции строки str среди строк (подстрок) в строке strlist. Строки (подстроки) в strlist разделены ",". Возвращает 0, если str не найдена среди строк в strlist. Возвращает NULL, если один из аргументов NULL.

Примеры:

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
См. также MAKE_SET().

-~{}~ 18.03.08 13:56:

уже все комбинации перекрутил не помагает,

функция возвращает просто номер ... :(
 

hrm

Новичок
kiruxa_dnp
Mr_Max дело говорит, но нужно немножко подумать. подумай, как можно использовать номер, который возвращает функция для сортировки в нужном тебе порядке.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
функция возвращает просто номер ...
И что из того?
Это как=раз то, что тебе и нужно.
по нему и сортируешь.
то-есть
FIND_IN_SET (id, '11, 33, 22, 55, 44')

11 -> 1
33 -> 2
22 -> 3
55 -> 4
44 -> 5

У тебя "отсортируется" по этому "просто номеру".

-~{}~ 18.03.08 13:01:

SELECT * FROM tbl WHERE id IN (11, 33, 22, 55, 44) ORDER BY FIND_IN_SET (id, '11, 33, 22, 55, 44')
Это что, не работает?

:confused:

?
 

kiruxa_dnp

Новичок
куда его тудить? в ордер оно не работает :(

Ошибка
SQL-запрос:

SELECT *
FROM lu_country
WHERE id
IN ( 11, 33, 22, 55, 44 )
ORDER BY FIND_IN_SET( id, '11, 33, 22, 55, 44' )
LIMIT 0 , 30

Ответ MySQL:

#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 '(id, '11, 33, 22, 55, 44')
LIMIT 0, 30' at line 1
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Запрос исполняешь с консоли?
Или с пхпМайАдмина?
FIND_IN_SET----->Скорее всего здесь ПРОБЕЛ<---------------(
 

kiruxa_dnp

Новичок
я делаю из под пхп админа и не работает
с пробелом тоже

-~{}~ 18.03.08 15:07:

на той же машине что и скрипт будет выполнятьсся
 
Сверху