#mysql
#mysql
Вопрос:
Я хочу удалить женщин из мужчин.
Каждый раз, когда я изменяю эту строку:
ГДЕ REGEXP_LIKE(имя,'(мужское)’)
Вставляя ^ или $, чтобы соответствовать только мужским, он возвращает нулевые результаты. Я также попытался добавить ^ в начало.
SELECT name
FROM table
WHERE REGEXP_LIKE(name,'(men's)')
AND name LIKE '%shoe%'
LIMIT 5
name
Nike React Vision Men's Shoe - Grey
Nike React Vision Women's Shoe - Grey
Nike React Sertu Men's Shoe - Blue
Nike Revolution 5 FlyEase Men's Running Shoe - Blue
Nike Air Zoom Terra Kiger 6 Women's Trail Running Shoe - Pink
Скорее всего, это мои отвратительные навыки работы с MySQL, поэтому любая помощь была бы очень признательна.
Я также попробовал альтернативный синтаксис
WHERE name REGEXP '^(men's)'
Который также возвращает 0 результатов.
Комментарии:
1. Вместо этого вы могли бы попробовать вычислить женщин. Здесь это кажется более надежным подходом. Будет ли это работать для вас?
2.
^
Будет соответствовать начальной позиции любой строки.$
Все наоборот, что означает конец строки. Вы должны попытаться сопоставитьMen's
с большой буквы M, чтобы избежать сопоставления с женщинами.
Ответ №1:
Я использовал синтаксис RLIKE и границу слова, чтобы отделить женщин от мужчин:
SELECT name
FROM products_en
WHERE name RLIKE '\bmen\b'
AND name LIKE '%shoe%'
LIMIT 50
Спасибо