Вертикальная черта в mysql REGEXP

A
На сайте с 23.03.2005
Offline
13
2643

Записи в БД содержат в качестве разделителя вертикальную черту (|). Имеют вид например такой:

'|123:asdf||312||234:wer|'

Пытаюсь с помощью regexp вытащить записи, например, содержащие |

Но вертикальная черта - спецсимвол. Нужно экранировать. Перепробовал кучу вариантов, но так работоспособный не нашел.

Пробовал:

REGEXP '|'

REGEXP '\|'

REGEXP '\\|'

REGEXP '||'

REGEXP '\||'

REGEXP '\x7C'

не ищется вертикальная черта!

Oniks
На сайте с 22.08.2005
Offline
176
#1

Если не ошибаюсь, то | - это аналог \t, точнее наоборот:).

Профессиональные услуги фотографа в Москве и области (http://www.oniks-photo.ru/) покупаю стать и ссылки с сайтов про охоту
Dalim
На сайте с 13.01.2006
Offline
47
#2

А конструкция LIKE не подходит?

например: LIKE '%|%'

F2
На сайте с 13.01.2005
Offline
36
#3

Я помню, что мне приходилось дважды заслэшивать... Но Вы вроде говорите, что не ищется. Сейчас проверю...

Разработка сайтов (http://www.dolnet.ru/) Поддержка сайтов (http://www.dolnet.ru/) Раскрутка сайтов (http://www.dolnet.ru/) Дизайн сайтов (http://www.dolnet.ru/)
F2
На сайте с 13.01.2005
Offline
36
#4

SELECT * FROM articles WHERE title REGEXP '\\|' Получилось :-) Я же говорил!

A
На сайте с 23.03.2005
Offline
13
#5

Видимо, необходимое количество слэшей зависит от настроек сервера.

Мне удалось-таки найти то, что нужно - \\\\|

Правда, природа второго удвоения слэшей мне до сих пор не ясна... :)

O
На сайте с 27.07.2005
Offline
49
#6

2 austere: про природу почитай здесь. ;)

WBR, oksale
pelvis
На сайте с 01.09.2005
Offline
345
#7
Dalim:
А конструкция LIKE не подходит?
например: LIKE '%|%'

так лучше, привычнее, чем regexp, да вроде и побыстрее :)

Продаю вывески. Задарма и задорого (https://www.ledsvetzavod.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий