2012-12-05 128 views
0

我想在我的PHP MySQL查詢中使用LIKE運算符,但是它有些不起作用。PHP的MySQL LIKE運算符不工作

我正在尋找列被稱爲mysize

它爲varchar並具有類似1,2,4..etc逗號分隔的數值。

當我在SQL查詢

select * where 'mysize' LIKE '%22333333%' 

使用像運營商,它返回的所有記錄即使在列的值是1,3或僅需4.6但是,如果我在phpMyAdmin運行相同的查詢,它的工作原理。

任何幫助,將不勝感激。

感謝, DT

EDIT(OP provided full query in comment in an answer):

$where.=" and msize LIKE '%".$sizelist."%'"; 
$SelQuery="Select * from tbl_product where product_id IS NOT NULL and product_type='".$_REQUEST['product_type']."' $where ORDER BY product_id DESC "; 
+0

是查詢完成?不應該像SELECT * from myTable那樣mysize like'%2%' –

+0

如果你的PHP腳本構建了相同的查詢,你將得到相同的結果。 –

+0

如果您有一列使用逗號分隔的值,那麼您應該考慮將它們放在與外鍵相關的單獨表中。 –

回答

0

你不選擇FROM表。

select * FROM <table_name> where 'mysize' LIKE '%2%';

0

請查詢中指定表名。選擇查詢的

語法如下

select * from <tablename> where <condition> 

使用

select * from <your_tablename> where 'mysize' LIKE '%2%' 
0

給出好像您的查詢是不正確的。 它必須是這樣的:

SELECT * FROM `table_name` WHERE 'mysize' LIKE '%2%' 
+0

其實爲了讓論壇變得簡單,我沒有放下我的整個PHP代碼。這是PHP代碼如何: $ where。=「and msize LIKE'%」。$ sizelist。「%'」; $ SelQuery =「Select * from tbl_product where product_id IS NOT NULL and product_type ='」。$ _ REQUEST ['product_type']。「'其中ORDER BY product_id DESC」; – user1786339

0

嘗試使用FIND_IN_SET

select find_in_set('8', '18,81,82,88');