如果文本字段值=“全部”,我想编写mysql查询来显示所有记录,否则显示类似于关键字值的记录。我在下面编写了代码只是为了给出一个想法。
if (keyword = 'All' )
select * from ItemMain
else if (keyword like %itemname%)
select * from ItemMain
如果文本字段值=“全部”,我想编写mysql查询来显示所有记录,否则显示类似于关键字值的记录。我在下面编写了代码只是为了给出一个想法。
if (keyword = 'All' )
select * from ItemMain
else if (keyword like %itemname%)
select * from ItemMain
如果 itemname 是您的列名,并且您的搜索字符串参数替换了?
代码中的。如果您正在搜索包含搜索字符串的所有项目名称,那么您的语句应该如下所示:
SELECT *
FROM ItemMain
WHERE ? = 'All' OR itemname LIKE '%?%'
或者,如果您正在寻找完全匹配的内容:
SELECT *
FROM ItemMain
WHERE ? = 'All' OR itemname = ?
好的,假设 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