[英]How to ignore characters on a MYSQL SELECT LIKE %…%
我有一個帶有phone
欄的表格,其中數據之間的數字之間可能有空格,點,破折號或+號。 我需要使用忽略所有這些字符的LIKE通配符進行搜索,例如:
不幸的是,我無法清理原始表以刪除非數字字符並執行簡單的SELECT LIKE%...%。
MYSQL具有替換/刪除字符串中的字符的功能,但是找不到在帶有Wildcarded LIKE的查詢中使用它們的方法。
任何幫助都感激不盡。
我看到兩種方法:
如果只允許幾個額外的字符,則可以准備一個從這些額外的字符中去除的字符串,並且使用LIKE運算符,通常
select * from phoneTable where replace(replace(phone, '+', ''), '-', '') LIKE '%123%'
當然,您需要的替換調用數與允許的額外字符數一樣多
您使用正則表達式,假設您正在搜索模式123
select * from phoneTable where phone REGEXP '.*1[^0-9]*2[^0-9]*3'
我在零件號和不需要的字符上也遇到了同樣的問題。 我的解決方案是
SELECT * FROM parts WHERE replace(partnumber, '-', '') LIKE '$searchterm%';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.