我需要一些代码来搜索DB内的一些数据......
我有两个字段id
和name
...
如果我键入“ABC”,它可以显示有关“ABC”的所有数据..
如果“DEF”=>所有DEF数据......或者我输入任何东西它可以显示“任何东西”......
我只知道如何在字段内显示“ABC”和“DEF”一起显示的所有数据,代码如下:
"SELECT ID,Name FROM Regist ORDER BY date";
答案 0 :(得分:1)
可能你想要这样的东西:
SELECT id,name FROM Regist WHERE NAME LIKE '%ABC%' OR NAME LIKE '%DEF%';
请注意,这种搜索效率低下,如果你需要类似的东西,你最好使用像Sphinx这样的搜索
答案 1 :(得分:1)
MySQL通配符:_
和%
(与关键字LIKE
结合使用)
_
表示单个字符
SELECT name FROM colors WHERE name LIKE 'gr_y';
输出:'grAy','灰色'。
%
表示任意数量的字符
SELECT name FROM colors WHERE name LIKE 'gr%';
输出:'grAY','grey','grEEN'。
您可以多次同时使用_
和%
SELECT name FROM color WHERE name LIKE '_ra%';
输出:'GraY','OraNGE'。
在您的情况下,如果您要列出包含以“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
答案 2 :(得分:0)
从小处我明白你的问题
"SELECT ID,Name FROM Regist where name='ABC' ORDER BY date";
答案 3 :(得分:0)
这是正确的吗?
"SELECT id,name FROM Regist WHERE id LIKE '%' OR NAME LIKE '%' ORDER BY date";