我們有一個數據庫,我們的客戶一次輸入「Bob's」和另一個「Bob's」。 (注意單引號和撇號之間的細微差別。)如何在SQL中搜索字符串,將撇號和單引號視爲相等
當有人搜索「Bob's」或「Bob's」時,我想查找所有的情況,而不管他們用於撇號的是什麼。
我能想出的唯一方法是查看人們的疑問,並用(’|'')
(注意逃脫的單引號)和使用SIMILAR TO來替換每個出現的一個或另一個。
SELECT * from users WHERE last_name SIMILAR TO 'O(’|'')Dell'
有沒有更好的方法,理想情況下某種設置允許這些可互換?
我討厭操縱輸入的數據,尤其是因爲我們涉及多種語言,並且可能會出現用戶真正需要的數據。我希望能得到「單引號對待撇號」的設置,但並不驚訝它不存在。 –
無論您使用SIMILAR TO,LIKE還是REGEX匹配,您仍然必須將它們寫入。你也可以把它包裝在你的函數中,並創建一個函數索引:-) –