2017-02-09 59 views
0

我有一個表叫country_zones和theres目前持有提取SQL查詢使用JSON - 笨

[「加拿大」,「美國」]

我第一次,提取用戶的國家一欄叫做國家他們註冊了,然後需要查詢以查看哪些用戶國家與country_zones行匹配。雖然每當我這樣做,我要麼得到錯誤或NULL

我試過這個。

$country = json_decode($this->db->get_where('country_zones',array('country'=>$user_country))); 

也。

$country = $this->db->query("SELECT * FROM country_zones WHERE country='$user_country'")->result(); 
+0

你從你的嘗試中得到什麼? – RiggsFolly

+0

顯示更多的代碼,因爲你顯示的代碼對我們幫助不大 – RiggsFolly

+0

什麼是國家列的數據類型?並分享$ user_country值? – Naincy

回答

1

比方說user_country是加拿大,然後將查詢應該是:

SELECT * FROM country_zones WHERE country LIKE '%"Canada"%'; 

所以,試試這個:

$country = $this->db->query("SELECT * FROM country_zones WHERE country LIKE '%\"$user_country\"%'")->result(); 

編輯:需要

LIKE查詢因爲列包含["canada","United States"]和你想要與Canada匹配。所以上面的LIKE查詢是SQL的說法給我行的國家包含「加拿大」。

請參閱:https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html

+0

它的工作原理!你能向我解釋爲什麼我需要使用LIKE和'%\'是什麼? – D12L12

+0

謝謝。現在,如果我想只提取國家行,我可以做$ thecountry = $ country-> row() - > country; ?? – D12L12

+0

「只提取國家行」是什麼意思?另外,PHP並不是我的專長,但我可以幫助MySQL。 – Sangharsh