我有一张这样的表:
id firstname lastname cilinic1 cilinic2 ... insurance1 insurance2
1 rose golabi bla bla bla bla firaga atena
*2 ... ... ... ... filoli* filoli*
3 ... ... ... ... tomis atena
.
.
.
当用户尝试搜索像(atena)这样的特定保险时,我会进行如下查询:
SELECT * FROM doctors WHERE insurance1 LIKE ($userinput) ..
但此查询只会搜索 insurance1
问题是,有些医生有2个不同的诊所,而且每个诊所都可能接受同样的保险(就像这张表中的第2行,我用*一词)。
所以,我必须同时搜索 insurance1 和 insurance2 ,如果医生在2个诊所接受相同的保险,我想要显示该医生搜索结果中的两次
我该怎么办?
(注意:我必须选择*,因为我的表中有12列,我必须在搜索结果中显示所有内容(名字,姓氏,年龄,性别,城市......)。
有没有办法对mysql说这句话:
if you selected from **insurance1** then (function...)
if you selected from **insurance2** then (function...)
????
答案 0 :(得分:1)
您可以使用UNION
组合两个单独的查询:
SELECT * FROM doctors WHERE insurance1 LIKE ($userinput) ..
UNION ALL
SELECT * FROM doctors WHERE insurance2 LIKE ($userinput) ..