За последние 24 часа нас посетили 29846 программистов и 1760 роботов. Сейчас ищут 890 программистов ...

Запросить типа LIKE (разделитель ",")

Тема в разделе "MySQL", создана пользователем Daulet, 2 дек 2014.

  1. Daulet

    Daulet Активный пользователь

    С нами с:
    14 авг 2014
    Сообщения:
    49
    Симпатии:
    1
    Здравствуйте, как создать запрос в базу данных (Mysql)?
    Код (Text):
    1. SELECT id FROM test WHERE prog LIKE '%aa%'
    этот запрос находить где слово aa, а мне нужен чтобы разделял по "," и сравнивал.
    Пример:
    [​IMG]
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    во первых, зря ты затеял так искать. SQL создан для работы с множествами, а не со строками. все значения должны быть отдельными записями (в связанной таблице). тогда сервер БД будет искать быстро даже в очень больших таблицах.

    ну а буквальный ответ такой: FIND_IN_SET('aa',prog), если функция вернула не NULL, значит такой элемент есть в строке.

    можно и через LIKE, но при условии, что ты будешь окружать каждый элемент разделителями с обоих сторон, например так:
    ',aa,'
    ',aa,bb,cc,'
    ',11,22,aa,'
    тогда можно искать по LIKE '%,aa,%'.
     
  3. Daulet

    Daulet Активный пользователь

    С нами с:
    14 авг 2014
    Сообщения:
    49
    Симпатии:
    1
    Спасибо, получилось
    у меня строка максимум 500