MYSQL LIKE REGEXP

247
30 марта 2017, 22:59

Пытаюсь сделать проверку на совпадения в БД. Привожу к единому виду переменную для проверки -

$title_check = preg_replace('/[^\p{L}0-9]/iu','',$title_check);
$title_check = 'ОООВЕКАСТРОЙ';

На выходе имя в верхнем регистре, только буквы и цифры. Не могу понять какой запрос сделать к БД, чтобы он приводил сначала проверяемое поле к такому же виду и затем проверял. Поиски в гугле привели к функции REGEXP. Пытался написать что-то вроде

SELECT nid, title FROM {node} WHERE node.type='zastr' AND title LIKE REGEXP ('/[^\p{L}0-9]/iu', $title_check)

но это конечно же неправильно.

Как написать такой запрос? Сразу оговорюсь - SOUNDS LIKE не подойдёт, MATCH AGAINST не подойдёт - таблица MyISAM.

Answer 1

в Mysql нет оператора LIKE REGEXP, а есть два разных оператора LIKE и REGEXP.
Поэтому надо выбрать только один.

Answer 2
SELECT * 
FROM person
WHERE memo REGEXP '[[:<:]]John[[:>:]]'
AND memo REGEXP '[[:<:]]Smith[[:>:]]
READ ALSO
Передача исключений выше в программу

Передача исключений выше в программу

Добрый день! Используется связка php+mssqlВ базе есть процедура с блоком try catch

185
Проблема с ответом cURL

Проблема с ответом cURL

Приветствую, коллеги

238
Поиск файла по шаблону в заданой директории php

Поиск файла по шаблону в заданой директории php

Есть директория, в ней просто громаднейшее кол-во файлов [странные люди] и дир-а постоянно пополняется

195