2012-10-17 47 views
1

嗨,大家好我需要搜索數據庫中的數據,例如123.456.789 即使我只輸入123456789,如何搜索它? 我需要從數據庫中轉義特殊字符,這樣即使我搜索123456789它也可以顯示123.456.789這樣的值。從數據庫中脫出特殊字符 - MySql

這裏是我的查詢:

SELECT * 
FROM clients 
WHERE REPLACE(phone, '.', '') LIKE ".$searchtext." 

...其中searchtext是多少即時尋找。它應該返回所有匹配的值,而不管任何特殊字符是否存在。

+0

請分享您的查詢。 –

+0

@ user868766這裏是我的查詢'SELECT * FROM clients WHERE REPLACE(phone,'。','')LIKE「。$ searchtext。」'其中searchtext是我要查找的數字。它應該返回所有匹配的值,而不管任何特殊字符是否存在。 – Kiel

+0

這是我第一次看到經常點被認爲是一個特殊的字符... :) –

回答

2

@Kiel

這裏是示例表&查詢。請看看這可以幫助你。不確定你的表格結構。

CREATE TABLE `clients` (
`id` int(11) NOT NULL, 
`phone` varchar(255) NOT NULL 
) ENGINE=InnoDB; 

INSERT INTO `test`.`clients` (
`id` , 
`phone` 
) 
VALUES (
'1', '123.456.789' 
), (
'2', '123.456.785' 
); 



mysql> select * from clients where replace(phone,'.','') = '123456789'; 
+----+-------------+ 
| id | phone  | 
+----+-------------+ 
| 1 | 123.456.789 | 
+----+-------------+ 

希望得到這個幫助!

+0

感謝!現在我需要更換。 - 和空間,以便我可以得到123.456.789,123-456-789和123 456 789任何想法?即時通訊想添加或在我的查詢,但有沒有更簡單的方法? – Kiel

+0

我做了謝謝!這裏是我最後的查詢'SELECT * FROM clients WHERE REPLACE(REPLACE(REPLACE(phone,'',''),' - ',''),'','')LIKE'「。$ searchtext。」% '「'謝謝! – Kiel

+0

@基爾很棒.... –

1

可以使用MySQL的REPLACE()功能:

SELECT * FROM my_table WHERE REPLACE(my_column, '.', '') = '123456789'; 

但如果my_column只包含整數,你應該將其更改爲MySQL的integer types之一。

+0

嗨我做到了這一點,但它不是成功這是我的查詢: '選擇*從客戶端WHERE REPLACE(電話,'。','')LIKE「$ searchtext。」'其中searchtext是我要搜索的號碼。 – Kiel

2
select phone from table_name 
where replace (cast (phone as text) , '.','') like '%123456789%' 
+0

嗨,我這樣做,但它給了我一個SQL錯誤時使用強制轉換。 – Kiel

+0

可以發帖給我錯誤, – solaimuruganv

0

Replace()是做到這一點的最好的功能:

Select * from TableName where Replace(ColumnName,'escaping character','replaced character')='your Search option' 

爲你的情況轉義字符是dot(.),替換的是''和搜索選項'123456789'

+0

我想逃避#字符,但我不能,當我逃避我有0個結果時, - 和黑色空間工作...但#didnot工作'選擇id,titlu,鏈接,替換(替換(替換(關鍵字,',','',' - ',''),'',''),'#','')LIKE '%$ keyword%' - 0結果和兩個查詢是1 - (#test,bla)和另一個(測試,bla)沒有#,如果'SELECT 8 FROM istorie WHERE replace(replace(replace(keywords,' ,'','),'',''))LIKE'%$ keyword%''只給我1個結果查詢值(#test,bla) –

相關問題