在phpMyAdmin我使用此查詢:如何匹配字符串與MySQL中的轉義引號字符?
SELECT * FROM myrecords where TITLE LIKE "%\\\"%"
要過濾掉不好保存記錄中有\
標誌"
標誌逃脫。它應該只是"
。所以我只需要找到\"
這些記錄,並用"
代替。但是當我使用上面的查詢來篩選\"
時,我得到的記錄與\"
以及"
的記錄一樣。
如何使此查詢只獲得帶有\"
而不是"
的記錄?
在phpMyAdmin我使用此查詢:如何匹配字符串與MySQL中的轉義引號字符?
SELECT * FROM myrecords where TITLE LIKE "%\\\"%"
要過濾掉不好保存記錄中有\
標誌"
標誌逃脫。它應該只是"
。所以我只需要找到\"
這些記錄,並用"
代替。但是當我使用上面的查詢來篩選\"
時,我得到的記錄與\"
以及"
的記錄一樣。
如何使此查詢只獲得帶有\"
而不是"
的記錄?
@保羅糾正我,它是這樣說的:
SELECT t1.title FROM myrecords as t1 where replace(title,'\\\"','@') LIKE "%@%";
對不起,但我不明白它是如何工作的。使用它後,我得到了兩列@。 –
因此,您正在替換每個「for @」,並且您正在通過@進行搜索,但我不確定它是否會起作用,您是否可以在此創建表的一部分:http://sqlfiddle.com/to test – jcho360
我想你的意思是有一個'HAVING'子句,而不是'WHERE'子句,但是你仍然錯過了你的'replace(...)'列的別名,如果它起作用,那不是好的解決方案,對不起 – fancyPants
這是搜索\"
正確的查詢:
SELECT * FROM myrecords where TITLE LIKE '%\\\\\\\"%';
"To search for 「\」, specify it as 「\\\\」; this is because the backslashes are stripped once by the parser and again when the pattern match is made, leaving a single backslash to be matched against. "
'喜歡' %\\\\「%''? – paul
嘗試 - >''%\\'%''使用單引號括住整個字符串,只有e掃除反斜槓 – ManseUK
它看起來應該已經工作了,但在MySQL看到它之前,您的查詢可能會被phpMyAdmin轉義。你可以嘗試命令行客戶端嗎? – hvd