如何选择两个不同的列从一个表中获取一些id两次?

时间:2014-04-09 18:55:07

标签: php mysql

我有一张这样的表:

        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...)

????

1 个答案:

答案 0 :(得分:1)

您可以使用UNION组合两个单独的查询:

SELECT * FROM doctors WHERE insurance1 LIKE ($userinput) ..
UNION ALL
SELECT * FROM doctors WHERE insurance2 LIKE ($userinput) ..