2016-09-21 51 views
-1

我在編寫mySql查詢時遇到了問題。如何比較MySQL中的字符串查詢

例如:

我有兩個輸入字段。

  1. 標題=「活到告訴」;
  2. 作曲家=「麥當娜/米歇爾傑克遜」;

在我的數據庫表中包含下面的記錄

表名:與列標題的歌曲和作曲家

  1. 標題=「生活告訴」;
  2. 作曲家=「米歇爾傑克遜/麥當娜」;

我的查詢:

select * from SONGS 
where title ='Live to Tell' and 
composer ='Madonna/Michel Jackson' 

不返回結果。我在作曲家檔案中互換了這個詞。

我的要求是讓它工作,即使我們互換單詞。

作曲內容由 '/'

+2

大聲朗讀您的查詢。一個標題如何既可以'生活告訴'又可以'麥當娜/米歇爾傑克遜'? – Devon

+0

這看起來像數據規範化(除其他外)的工作。將多個值存儲在單個字段中會使它們成爲單個值*。 – David

回答

1

嘗試爆炸字符串Madonna/Michel Jackson用PHP功能explode()分離。在查詢中使用它之前。

$composer = explode('/', 'Madonna/Michel Jackson'); 

這將返回數組$composer看起來像這樣:

array(
    [0] => 'Madonna', 
    [1] => 'Michel Jackson' 
) 

要選擇可以使用的名字之一,$composer[0] or $composer[1]

SELECT * FROM songs WHERE title ='Live to Tell' AND composer LIKE "%$composer[1]%";