Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mySql中使用一个或多个字段名搜索数据_Mysql - Fatal编程技术网

如何在mySql中使用一个或多个字段名搜索数据

如何在mySql中使用一个或多个字段名搜索数据,mysql,Mysql,这是我的表,我想通过以下名称或这些字段中的任何一个或组合进行搜索 deviceId、searchTerm、deviceName、deviceNumber、操作系统、Android、设备工作状态、状态 如果searchTerm是所有字段的组合,请建议我如何编写查询以搜索一个或两个或三个参数的组合 deviceId、deviceName deviceNumber、deviceWorkingStatus、os、分辨率、显示密度、序列号、备注、状态根据您的提问,我对您的目标只有一个粗略的了解。因此,如果

这是我的表,我想通过以下名称或这些字段中的任何一个或组合进行搜索

deviceId、searchTerm、deviceName、deviceNumber、操作系统、Android、设备工作状态、状态

如果searchTerm是所有字段的组合,请建议我如何编写查询以搜索一个或两个或三个参数的组合


deviceId、deviceName deviceNumber、deviceWorkingStatus、os、分辨率、显示密度、序列号、备注、状态根据您的提问,我对您的目标只有一个粗略的了解。因此,如果要在WHERE子句中按两列以上进行查询,可以在两者之间添加AND

例如:


从表中选择*,其中deviceName='deviceName'和deviceNumber='deviceNumber'

,因为这些是搜索参数,您希望搜索结果基于这些参数的任意组合,您需要一个覆盖所有这些字段的查询

设备ID 搜索词 设备名称 设备编号 操作系统 安卓 设备工作状态 地位 查询:

注:

如果您希望在搜索字符串为空的情况下获取结果事件,那么这将起作用。

这样做如何:

SELECT 
*
FROM your_table
WHERE deviceId LIKE CONCAT('%',COALESCE(deviceIdSearchString,''),'%')
AND searchTerm LIKE CONCAT('%',COALESCE(searchTermSearchString,''),'%')
AND deviceName LIKE CONCAT('%',COALESCE(deviceNameSearchString,''),'%')
AND deviceNumber LIKE CONCAT('%',COALESCE(deviceNumberSearchString,''),'%')
AND os LIKE CONCAT('%',COALESCE(osSearchString,''),'%')
AND Android LIKE CONCAT('%',COALESCE(AndroidSearchString,''),'%')
AND deviceWorkingStatus LIKE CONCAT('%',COALESCE(deviceWorkingStatus,''),'%')
AND status LIKE CONCAT('%',COALESCE(statusSearchString,''),'%');

你在哪里做研究?意味着我必须搜索它。对不起,我不明白你的问题。你能重新表述一下吗?看,我有来自表的concat和serch数据,比如select*from table where deviceName='deviceName'如果输入deviceName,如果我们输入deviceName和deviceNumber,那么它应该按照设备名和deviceNumber进行排序,就像那样,但是当我们没有传递deviceNumber时,这个查询将无法工作,因为它会无效@ALVIN@ResearchDevelopment如果是这样的话,你可以用OROK thanx让我查一下我需要一个帮助
SELECT 
*
FROM your_table
WHERE deviceId LIKE CONCAT('%',COALESCE(deviceIdSearchString,''),'%')
AND searchTerm LIKE CONCAT('%',COALESCE(searchTermSearchString,''),'%')
AND deviceName LIKE CONCAT('%',COALESCE(deviceNameSearchString,''),'%')
AND deviceNumber LIKE CONCAT('%',COALESCE(deviceNumberSearchString,''),'%')
AND os LIKE CONCAT('%',COALESCE(osSearchString,''),'%')
AND Android LIKE CONCAT('%',COALESCE(AndroidSearchString,''),'%')
AND deviceWorkingStatus LIKE CONCAT('%',COALESCE(deviceWorkingStatus,''),'%')
AND status LIKE CONCAT('%',COALESCE(statusSearchString,''),'%');
set @param = '';
SELECT 
*
FROM tbl_device
WHERE deviceId LIKE CONCAT('%',COALESCE(@param ,''),'%')
or deviceName LIKE CONCAT('%',COALESCE(@param ,''),'%')
or deviceNumber LIKE CONCAT('%',COALESCE(@param ,''),'%')
or os LIKE CONCAT('%',COALESCE(@param ,''),'%')
or resolution LIKE CONCAT('%',COALESCE(@param ,''),'%')
or deviceWorkingStatus LIKE CONCAT('%',COALESCE(@param ,''),'%')
or  serialNo LIKE CONCAT('%',COALESCE(@param ,''),'%')
or displayDensity LIKE CONCAT('%',COALESCE(@param ,''),'%')
or remarks LIKE CONCAT('%',COALESCE(@param ,''),'%')
or status LIKE CONCAT('%',COALESCE(@param ,''),'%');