0
在像這樣的表:組合「取代」,並在SQL查詢中使用通配符
ID| ph_number
-----------
1 | 51231234
2 | 5123 1234
3 | 51231234; 61231234
4 | 5123 1234; 61231234
5 | 5123 1934; 6123 1234
6 | 5123 1234; 6123 1234
7 | aargh; 5123 1234; 6123 1234
,用戶需要找到一個電話號碼(如51231234),不知道哪裏的空間是,或者如果有很多號碼每場。
SELECT ID, ph_number FROM test WHERE REPLACE(ph_number, ' ', '') LIKE REPLACE('51231234', ' ', '')
返回ID爲1和2,或
SELECT ID, ph_number FROM test WHERE ph_number LIKE '%51231234%'
返回ID爲1和3,但需要有編號1,2,3:我可以用這樣的查詢找到不帶空格的數字,4,6和7.我無法組合這兩個查詢。已嘗試:
SELECT ID, ph_number FROM test WHERE REPLACE(ph_number, ' ', '') LIKE ('%' + REPLACE('51231234', ' ', '') + '%') // returns 1 & 2
SELECT ID, ph_number FROM test WHERE REPLACE(ph_number, ' ', '') LIKE '%' + REPLACE('51231234', ' ', '') + '%' // returns ERROR
我怎麼能做到這一點?我不想告訴用戶他們在場上不能有多個號碼。
可能是您想使用'concat()'連接字符串嗎? http://sqlfiddle.com/#!9/18ff4/4/0 – mustaccio
哦..是的,這是伎倆,謝謝!把它放在一個答案請:) – Konservin
隨意回答你自己的問題 – mustaccio