查找与多列搜索查询匹配的列名称

时间:2013-10-17 11:32:36

标签: php mysql sql

我有一个简单的搜索查询,可以正常使用

$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?

但是当特定列匹配时,我希望能够找出匹配的列。

这可能吗?

1 个答案:

答案 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条件

附近缺少()