我想编写mysql查询来显示所有记录,如果文本字段值="全部"或者显示类似于关键字值的记录。我在下面写了代码,只是为了给出一个想法。
if (keyword = 'All' )
select * from ItemMain
else if (keyword like %itemname%)
select * from ItemMain
答案 0 :(得分:0)
如果itemname是您的列名,则您的搜索字符串参数将替换代码中的?
。如果您要搜索包含搜索字符串的所有项目名,那么您的语句应该如下所示:
SELECT *
FROM ItemMain
WHERE ? = 'All' OR itemname LIKE '%?%'
或者如果您正在寻找完全匹配的话:
SELECT *
FROM ItemMain
WHERE ? = 'All' OR itemname = ?
答案 1 :(得分:0)
好吧,假设PHP是前端语言,你可以将它全部放在一个这样的查询中(原谅花括号;我不确定它们是否需要它们,所以我倾向于结束 - 使用他们):
$query = <<< ENDSQL
SELECT *
FROM ItemMain
WHERE ('{$keyword}' = 'All') OR (your_textfield like '%{$keyword}%')
ENDSQL;
... execute the query
但我真的应该接受@cjg的建议并使用两个不同的查询:
$query = "";
if ($keyword == 'All') {
$query = "SELECT * FROM ItemMain";
} else {
$query = "SELECT * FROM ItemMain WHERE your_textfield LIKE '%{$keyword}%'";
}
... execute the query