2013-08-31 190 views
0

我使用的是标准的LAMP环境。我已经写了一个MySQL查询似乎工作,除了它返回的结果不符合条件,以及结果。MySQL查询返回匹配的记录,但也不匹配

$sql = "SELECT items.code, cats.cat_name, cats.id 
     FROM items, cats 
     WHERE cats.cat_name LIKE concat('%', items.code, '%') "; 

被重新调整incudes所有符合条件的记录(items.code & cats.cat_name)的结果,但进一步下跌的retreived结果也表明,不符合cat_names。

+0

什么样的数据类型是'items.code'和'cat_name'列?顺便说一句:这听起来像一个奇怪的数据模型,如果你匹配*代码*对*名*列 - 或真正奇怪的命名约定。 –

+0

数据类型都是varchar(32)。同意,items.code字段的奇怪用法 - 使用该系统的公司正在使用items.code来实现与预期不同的目的。他们是一个非盈利的有限预算,所以不能承担太多的定制。 –

回答

1

我想在代码为空或空字符串的项目中至少有一行。所有的猫行都会与物品中的这样一行连接。

+0

我添加了:AND items.code不喜欢''然后给出预期的结果。这是否意味着%通配符匹配空字段? –

+0

@johnfox当然。 *%*根据定义匹配零个或多个字符。 –