Доброго времени суток, Сообщество!
Есть необходимость пользоваться регулярными выражениями в mysql запросах. Пока поля в таблицах были все в utf8 все было нормально. Но появилась необходимость пользоваться регулярными выражениями для полей ucs2. Там ясное дело Эти выражения уже не подходят. и я озадачен что мне делать
Вот например есть такая таблица
CREATE TABLE IF NOT EXISTS `urls` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(2112) COLLATE ucs2_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=ucs2 COLLATE=ucs2_bin AUTO_INCREMENT=1 ;
Надо выбрать url-ы в которых встречаетяс vk.com. Для простоты пока покажу на примере LIKE.
SELECT * FROM `urls` WHERE `url` LIKE '%vk.com%'
Возвращает пустой результат. А вот следующий запрос уже показывает что нужно
SELECT * FROM `urls` WHERE `url` LIKE '%v\0k\0.\0c\0o\0m\0%'
Но для лайка такой костыль еще проконает, а вот для REGEXP уже ясное дело нет. Как можно выкрутиться из подобной ситуации? Можно ли в запросе как-то конвертировать само регулярное выражение или поменять правила сравнения. Или единственный выход — переписать регулярные выражения? Регулярные выражения на данный момент приблизительно такие.
/some=([a-zA-Zа-яА-ЯёЁ0-9]+)/u
Заранее благодарен за внимание.