Php 查找与多列搜索查询匹配的列名
我有一个简单的搜索查询,效果很好Php 查找与多列搜索查询匹配的列名,php,mysql,sql,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
$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?
然而,当有一个特定的列匹配,我想能够找出哪个列已经匹配
这可能吗?是的,只需按如下方式编辑查询:
$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数据字段。
如果列_true=1,则第一列条件为true
如果column2_true=1,则第二列条件为true
如果两者都是1,则列和列2都符合您的条件
顺便说一句:您的查询中有错误,缺少()或条件这样做对您有用吗<代码>如果($column==$result[$column1])回显“第1列匹配”代码>谢谢,但这似乎不起作用。Francisco Presencia,这不起作用,因为$result是资源,而不是数组。他使用mysql\u result或mysql\u fetch\u assoc(或mysql\u fetch\u数组)从$result获取数据,请参见下面我的回答。“您的查询中有错误吗?”??不是因为我笑了就投了反对票,结果只得到了一半。我承认,另一个错误,他在这种情况下失踪了。我还在这里为他添加了解决方案。:-)老实说,我不完全理解这样的疑问。如何访问列\u true或列2\u true?这些几乎成为列名了吗?是的,它将成为列名(虚拟)。访问它们的方式与访问其他列(id、$column、$column2)的方式相同。F.e.$column_true=mysql_result($result,0,'column_true');或者您可以使用mysql\u fetch\u assoc将所有选定的列关联到一个数组中。谢谢大家,一切都很好。唯一的问题是当没有匹配时,它会抛出一个错误。有什么想法吗?