0

我有一个简单的搜索查询,效果很好

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

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

这可能吗?

4

1 回答 1

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,则 column 和 column2 都符合您的条件。

顺便说一句:您的查询中有错误,在 OR 条件周围缺少 ( )

于 2013-10-17T11:37:30.377 回答