0

如果文本字段值=“全部”,我想编写mysql查询来显示所有记录,否则显示类似于关键字值的记录。我在下面编写了代码只是为了给出一个想法。

if (keyword = 'All' )
    select * from ItemMain
else if (keyword like %itemname%)
    select * from ItemMain   
4

2 回答 2

0

如果 itemname 是您的列名,并且您的搜索字符串参数替换了?代码中的。如果您正在搜索包含搜索字符串的所有项目名称,那么您的语句应该如下所示:

SELECT   * 
FROM     ItemMain
WHERE    ? = 'All' OR itemname LIKE '%?%'

或者,如果您正在寻找完全匹配的内容:

SELECT   * 
FROM     ItemMain
WHERE    ? = 'All' OR itemname = ?
于 2013-03-21T17:50:24.613 回答
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
于 2013-03-21T17:52:21.743 回答