2016-09-01 68 views
-1

任何快速幫助將不勝感激。我在mysql中命名爲mob_categories,現在數據正在保存爲'|'例如分隔(cat 1|cat 2|cat 3等等。現在我需要從另一列中的值,如果輸入值匹配MYSQL Select IN查詢使用文字

例如,如果值是貓1我需要從另一列中選擇值被命名爲deveice_token無論它與「貓1」

比賽我嘗試這個代碼,但它不是以某種方式工作

SELECT * from table_name where find_in_set('cat 1',mob_categories) <> 0 

,所以我修改了一下下面的代碼,但它只有數字值,如果工作值以這種格式以此格式退出(即)1,2,3

$userNotification = $wpdb->get_results("SELECT * from table_name where 1 IN (mob_categories); "); 

什麼是我特別丟失?

+1

您應該規範化您的模式,以便在列中沒有多個值。 – Barmar

回答

1

由於mob_categories中的數據由|而不是逗號分隔(,),所以您需要首先使其與FIND_IN_SET兼容。

因此先用逗號(,)替換全部|

SELECT * from table_name where find_in_set('cat 1', REPLACE(mob_categories,'|',',')) > 0 
+0

真的嗎?沒有更好的主意? – Strawberry

+0

如果問題仍然存在,那麼我就沒有比在MySQL中解決它更好的主意了。如果你想出更好的主意,那麼請分享。我期待着它。 @Strawberry – 1000111

+0

有時,我們需要拒絕問題的前提,並重新定義問題。 – Strawberry