За последние 24 часа нас посетили 16418 программистов и 1677 роботов. Сейчас ищут 837 программистов ...

MySQL LIKE не числа

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

  1. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Нужно найти все вхождения $poisk но что бы по бокам не были числа что то типа LIKE '![0-9]$poisk![0-9]'
    Только это естественно не работает, помогите как надо а то я не силен в регулярках ))
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    like '%something%', где something - то, что надо искать.
     
  3. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    REGEXP "/[^0-9]poisk[^0-9]/i"
     
  4. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Пишет ошибку Parse error: syntax error, unexpected '^', expecting T_STRING or T_VARIABLE or T_NUM_STRING in
    когда делаю так
    Код (Text):
    1. $AND.="`tov_nazv` REGEXP \"/[^0-9]$art[^0-9]/i\" AND";
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    $art попробуйте в фигурные скобки заключить, а то php думает, что [^0-9] - это у вас индекс массива
     
  6. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Что то не верно регулярка работает. Вот скажем в tov_nazv есть такие записи:
    ЦОП15
    ЦОП(н)
    если использовать такую регулярку REGEXP \"/[^0-9]{$art}[^0-9]/i\" то не находит ЦОП(н)
     
  7. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    А как в MySQL определить содержит ли буквы $poisk
    Мне надо разделить если $poisk содержит буквы то поиск один а если нет букв (то есть цифры) то регулярка другая
    Или это только через php делать проверку и подставлять нужный запрос?
     
  8. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    А можно ли отсортировать результаты REGEXP что бы сначала шли точные совпадения а дальше менее точные? Ну скажем я ищу "ЩА4375" мне бы выдавало:
    ЩА4375
    ЩА4375-2
    ЩА4375 (ОСК)
    25-ЩА4375
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    install sphinx