2012-12-05 80 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');