2010-06-28 81 views
0

我需要搜索一些代碼裏面DB ... 一些數據我有兩個領域是idname ... 如果我輸入「ABC」它可以顯示約「的所有數據需要的代碼ABC「.. 如果」DEF「=>所有的DEF數據......或者我輸入任何東西,它可以顯示」任何東西「...MySQL的:搜索數據

我只是知道如何顯示所有數據, ABC」和‘DEF’顯示在一起,這樣的代碼:

"SELECT ID,Name FROM Regist ORDER BY date"; 

回答

1

MySQL的通配符:_ AND %(結合關鍵字LIKE


_表示單個字符

SELECT name FROM colors WHERE name LIKE 'gr_y'; 

輸出: '灰色','灰色'。


%表示任何數量的字符

SELECT name FROM colors WHERE name LIKE 'gr%'; 

輸出的: '灰色', '灰色', '綠色'。


您可以同時使用_%多次

SELECT name FROM color WHERE name LIKE '_ra%'; 

輸出: '灰色', '橙色'。


在你的情況下,如果要列出包含以「ABC」或「DEF」開始的名字,你的查詢會是這樣:

SELECT id,name FROM Regist 
    WHERE name LIKE 'ABC%' OR name LIKE 'DEF%' 
    ORDER BY date 

如果你希望你的名字包含字符串「ABC」或「DEF」裏的任何地方,您的查詢將是:

SELECT id,name FROM Regist 
    WHERE name LIKE '%ABC%' OR name LIKE '%DEF%' 
    ORDER BY date 

最後,如果你希望你的名字同時包含「ABC」和「DEF」你可以使用:

SELECT id,name FROM Regist 
    WHERE name LIKE '%ABC%DEF%' OR name LIKE '%DEF%ABC%' 
    ORDER BY date 
0

從小事我明白你的問題

"SELECT ID,Name FROM Regist where name='ABC' ORDER BY date"; 
1

也許你想是這樣的:

SELECT id,name FROM Regist WHERE NAME LIKE '%ABC%' OR NAME LIKE '%DEF%'; 

請注意,這種搜索是低效的,如果你需要這樣的東西,你最好使用像Sphinx

+0

如果我想要我輸入的所有內容都可以顯示.. ??但僅限於該數據... – klox 2010-06-28 07:02:34

0

是這正確嗎?

"SELECT id,name FROM Regist WHERE id LIKE '%' OR NAME LIKE '%' ORDER BY date";