正确的SQL语法(PHP和MySQL组合)


Correct SQL syntax ( PHP and MySQL Combo)

我有这样的查询:

SELECT 
   CONCAT(CT.FIRSTNAME,' ', CT.LASTNAME) AS NAME,
   T.TYPE_OF_VISITOR_NAME AS TYPE_OF_VISITOR,
   I.INDUSTRY_NAME AS INDUSTRY
FROM 
   COMPANY CY, CONTACTS CT, INDUSTRY I, TYPE_OF_VISITOR T
WHERE
   CY.INDUSTRY_ID = I.INDUSTRY_ID
 AND CY.COMPANY_ID = CT.COMPANY_ID
 AND CT.TYPE_OF_VISITOR = T.TYPE_OF_VISITOR_ID
 AND '$searchType' LIKE '%$searchString%' 

其中$searchType是包含2个值的组合框中的值:

  • NAME(这是不识别在数据库中,只要我使用CONCAT(CT.FIRSTNAME,' ', CT.LASTNAME)的问题是,当用户选择COMPANY_NAME,我将有错误的语法)
  • COMPANY_NAME

$searchString为搜索输入框。

在上面的查询中

。当用户在COMPANY_NAME类型下搜索任何东西时,它会工作。问题是,我想有一个搜索选项,也为名称(名和姓)。不幸的是,我的数据库中的列是FIRSTNAMELASTNAME。我在select语句中连接的。

问题:

  • 当用户想要搜索COMPANY_NAME时,如何在不影响结果的情况下实现对FIRSTNAMELASTNAME的搜索?

尽可能多的我想做到这一点,只使用一个查询。任何帮助都将非常感激。由于

代替NAME,组合框的值应该是

CONCAT(`CT`.`FIRSTNAME`,' ', `CT`.`LASTNAME`)

组合框值:

1. CONCAT(`CT`.`FIRSTNAME`,' ', `CT`.`LASTNAME`)
2. `COMPANY_NAME`