Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   [SQL] Поиск в поле-список в БД MySQL, у кого есть какие идеи? (http://forum.typo3.ru/showthread.php?t=6544)

Sergey M Nikitin 20.07.2008 20:58

[SQL] Поиск в поле-список в БД MySQL, у кого есть какие идеи?
 
Головоломка:
Выбрать из таблицы table все записи которые удовлетворяют требованию:
в поле mm_type встречается заданное число.

Пример таблицы
Код:


uid    | name    | mm_type
--------+---------+----------
 1      | nm1    | 1,4,7
 2      | nm2    | 2,4,1
 3      | nm3    | 8,1,5,9
 4      | nm4    | 9,1,3,4

например выбрать записи где в поле mm_type встречается 4, запрос вернет записи с uid 1,2,4,

или 9
вернет записи с uid 3,4,


А теперь на SQL?

Единственное решение которое я нашел:
Код:

SELECT name, mm_type
FROM table c
WHERE
c.mm_type LIKE "[num]" OR
c.mm_type LIKE "[num],%" OR
c.mm_type LIKE "%,[num]" OR
c.mm_type LIKE "%,[num],%" ;

Мне кажется криво :(
у кого есть какие идеи?

Pavel Antonov 21.07.2008 16:05

Код:

SELECT name, mm_type
FROM table as c
WHERE FIND_IN_SET("[num]", c.mm_type) > 0;

Обрати внимание что число должно идти строкой.

Sergey M Nikitin 21.07.2008 16:19

Классный способ, спасибо !!!
 
Работает во всех версиях начиная 3.23

Pavel Antonov 21.07.2008 16:29

Цитата:

Сообщение от nikitinsm (Сообщение 20129)
Работает во всех версиях начиная 3.23

Ну думаю что эта информация может кого то заинтересовать кроме некрофилов 8=)

Sergey M Nikitin 21.07.2008 16:31

Во такие беседы ...
 
И рождают флудеров


Часовой пояс GMT +4, время: 03:19.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot