Php 在mysql查询中获取匹配的列值
我有一个这样的桌子结构:Php 在mysql查询中获取匹配的列值,php,mysql,sql-like,Php,Mysql,Sql Like,我有一个这样的桌子结构: ----------------------------------------------------------------------- ID | Scifi Name | Hospital Code | Layman Language | 1 | Hysoc | CBC | torems 2 | Loreim
-----------------------------------------------------------------------
ID | Scifi Name | Hospital Code | Layman Language |
1 | Hysoc | CBC | torems
2 | Loreim | HCI | Loreims
-----------------------------------------------------------------------
我尝试在如下查询时匹配值:
"SELECT * FROM wp_vhh4zdnv0r_disease WHERE scifi_name like '%".$_GET['term']."%' OR hospital_code like '%".$_GET['term']."%' OR layman_language like '%".$_GET['term']."%'";
查询工作正常,但我正在尝试获取与值匹配的字段。例如,如果
term='cbc'
和cbc
存在于Hospital code
中,它只返回Hospital code?我应该如何做到这一点。php代码可能会有所帮助,但我不知道如何做到这一点。谢谢你可以使用case
这样的语句:
$sql= "SELECT CASE WHEN scifi_name like '%".$_GET['term']."%' THEN scifi_name
WHEN phospital_code like '%".$_GET['term']."%' THEN phospital_code
WHEN layman_language like '%".$_GET['term']."%' THEN layman_language
END FROM wp_vhh4zdnv0r_disease";
你可以使用UNION。另外,不要忘记使用
mysqli\u real\u escape\u string()
或类似函数转义用户输入
SELECT scifi_name FROM wp_vhh4zdnv0r_disease WHERE scifi_name like '%".$_GET['term']."%' UNION SELECT hospital_code FROM wp_vhh4zdnv0r_disease WHERE hospital_code like '%".$_GET['term']."%' UNION SELECT layman_language FROM wp_vhh4zdnv0r_disease WHERE layman_language like '%".$_GET['term']."%'"
放一些虚拟数据,这样我们就可以测试otsqlfiddle@PathikVejani搜索查询可能是值有CBC或LROM等,所以你的条件不考虑。