Как искать array в mysql запросе

Тема в разделе "Как сделать...", создана пользователем autos, 25 июл 2015.

  1. autos

    autos

    Регистр.:
    14 июл 2007
    Сообщения:
    191
    Симпатии:
    49
    в базе есть переменная тип text Перейти по ссылке

    как сделать поиск $id=1 из этого поля department=

    можно через like
    $sql = "SELECT * FROM order WHERE department like '%$id%' ";
    но если у нас department='11,123,431'
    цифру 1 он найдет, а надо только до запятой, может и такой вариант быть department='31,2,1'
    like='1,' тоже не подходит как же быть?

    вертиться такое, но как реализовать?
    $sql = "SELECT * FROM order WHERE department IN ('$id')";
     
  2. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    Код:
    $sql = "SELECT * FROM order WHERE department REGEXP '[[:<:]](1)[[:>:]]' 
    или даже
    Код:
    $sql = "SELECT * FROM order WHERE department REGEXP '[[:<:]](1,20,10500)[[:>:]]' 
     
  3. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    $sql = "SELECT * FROM order WHERE concat(',',department,',') like '%,$id,%' ";

    :D