2016-08-03 91 views
-1
deviceId    deviceName   deviceNumber  deviceWorkingStatus os    resolution    displayDensity serialNo   remarks   status 


'1'     'HTC Magic'   'TJ/AND-01'    '0'  'Android - 1.5' '320 x 480'    'Medium'  'HT96WKF00400'  'Using by Amit' '1' 
'6'     'HTC Desire C'   'TJ/AND-06'    '1'  'Android 4.0'  'HVGA, 480 x 320 Pixels'  NULL  'SH29XW504394'   NULL   '1' 

明智如何搜索數據,這是我的表,我想通過下面的名稱或任何一個或組合的這些領域使用一個多字段名在MySQL

deviceIdsearchTermdeviceNamedeviceNumber搜索, osAndroiddeviceWorkingStatusstatus

其中searchTerm是所有字段的組合,請建議我如何編寫查詢搜索一個或兩個蘇氨酸組合的所有參數EE ..

deviceIddeviceNamedeviceNumberdeviceWorkingStatusosresolutiondisplayDensityserialNoremarksstatus

+0

你在哪裏做研究? –

+0

表示我必須搜索它 –

+0

對不起,我不明白你的問題。你能再次重新說一遍嗎? – Alvin

回答

1

由於這些是搜索參數,你想搜索結果基於任何你需要查詢涵蓋所有這些領域的組合。

  • DEVICEID
  • SEARCHTERM
  • DEVICENAME
  • deviceNumber
  • OS
  • 的Android
  • deviceWorkingStatus
  • 狀態

查詢:

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,''),'%'); 

注:

如果你想要得到的結果事件如果搜索字符串爲空,那麼這會工作。

+0

OK thanx讓我檢查 –

+0

你有請給我一個幫助 –

0

根據你問,我只是有什麼是你的目標一個大概的瞭解。所以,如果你想通過兩個以上的列在WHERE子句來查詢,你可以在例

之間

添加AND

SELECT * from Table WHERE deviceName = 'deviceName' AND deviceNumber = 'deviceNumber'

+0

但有些時候,沒有devicenumber然後這個查詢不會工作,因爲它將爲空@ALVIN –

+0

@ResearchDevelopment如果是這樣的話,你可以使用'OR' – Alvin

+0

在那種情況下會有很多記錄會返回它會很多 –

1

怎麼樣這樣:

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 ,''),'%'); 
相關問題