我有一个这样的表:
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) ..
但此查询仅在保险1中搜索
问题是,有些医生有两个不同的诊所,每个诊所可能接受相同的保险(就像这张表中的第2行,我用*表示)。
因此,我必须同时在保险1和保险2中搜索,如果一名医生在两个诊所接受相同的保险,我想在搜索结果中显示该医生两次
我该怎么办?
(注意:我必须选择*,因为我的表中有12列,我必须在搜索结果中显示所有内容(名字、姓氏、年龄、性别、城市…)
有没有办法对mysql说这句话:
if you selected from **insurance1** then (function...)
if you selected from **insurance2** then (function...)
您可以使用UNION
组合两个单独的查询:
SELECT * FROM doctors WHERE insurance1 LIKE ($userinput) ..
UNION ALL
SELECT * FROM doctors WHERE insurance2 LIKE ($userinput) ..