我有一个简单的搜索查询,可以正常使用
$result = mysql_query("SELECT id, $column, $column2 FROM $table WHERE BINARY account_no='{$_SESSION['account']}' AND $column LIKE '$query' OR $column2 LIKE '$query'") or die(mysql_error());
$output_column=column1 or column2 //which column has been matched?
但是当特定列匹配时,我希望能够找出匹配的列。
这可能吗?
答案 0 :(得分:2)
是的,只需编辑您的查询:
$result = mysql_query("
SELECT
id, $column, $column2,
IF ($column LIKE '$query', 1, 0) AS `column_true`,
IF ($column2 LIKE '$query', 1, 0) AS `column2_true`
FROM $table
WHERE BINARY account_no='{$_SESSION['account']}' AND ($column LIKE '$query' OR $column2 LIKE '$query')")
or die(mysql_error());
因此您还将获取另外2个数据字段。 如果column_true = 1,则第一列条件为真 如果column2_true = 1,则第二列条件为真
如果两者都是1,则列和列2都匹配您的条件。
顺便说一下:您的查询中有错误,OR条件
附近缺少()