Задавайте вопросы, мы ответим
Вы не зашли.
Подскажите, в чем проблема - не могу найти ошибку.
Строка: 1_1|fieldsep|1_2
Рег. выражение: ^.*\|fieldsep2\|.*$
Проблема в том, что это выражение выдает результатом true, хотя после слова fieldsep в регвыражении присутствует еще один символ.
Неактивен
Экранирование где-то потеряли:
mysql> SELECT '1_1|fieldsep|1_2' RLIKE '^.*\|fieldsep2\|.*$ '; +-------------------------------------------------+ | '1_1|fieldsep|1_2' RLIKE '^.*\|fieldsep2\|.*$ ' | +-------------------------------------------------+ | 1 | +-------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT '1_1|fieldsep|1_2' RLIKE '^.*\\|fieldsep2\\|.*$'; +--------------------------------------------------+ | '1_1|fieldsep|1_2' RLIKE '^.*\\|fieldsep2\\|.*$' | +--------------------------------------------------+ | 0 | +--------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT '1_1|fieldsep2|1_2' RLIKE '^.*\\|fieldsep2\\|.*$'; +---------------------------------------------------+ | '1_1|fieldsep2|1_2' RLIKE '^.*\\|fieldsep2\\|.*$' | +---------------------------------------------------+ | 1 | +---------------------------------------------------+ 1 row in set (0.00 sec)
Неактивен
это уже интересно... у меня второй запрос выдал единицу((
кстати, в JS-скрипте аналогичное выражение исправно срабатывает
версия 5.0.90, хостинг majordomo
у кого-нибудь есть идеи? смена хостинга невозможна.
Неактивен
А проверяете в каком клиенте? Учтите, что часть слешей может съедать
клиент, если он неудачный (например, phpMyAdmin).
Неактивен
неа, я в своем php скрипте делаю запрос через mysql_query(), и через mysql_result считываю результат.
Неактивен
в итоге правильным оказался вариант аж с тремя слешами:
SELECT '1_1|fieldsep2|1_2' RLIKE '^.*\\\|fieldsep2\\\|.*$';
правда, до конца так и не понял почему так..
Неактивен