我只需要在另一个表文本字段中匹配时返回一组名称

时间:2011-02-15 14:14:51

标签: php mysql

我正在尝试使用Select语句,我有一个带有Names字段的表(区),如果它包含在另一个表的文本字段中,我只想返回一个名称。 这样的事情。

SELECT name  FROM districts,users 
WHERE users.accesslist LIKE '"%"+districts.name+"%"'

这会返回一个空列表。

如果我使用特定名称%Swindon%,我可以让它工作,那么我的连接是错误的吗?

4 个答案:

答案 0 :(得分:0)

看起来像是。使用CONCAT("%", districts.name, "%")

答案 1 :(得分:0)

您需要在表之间指定某种关系。就目前而言,您从两个表中进行选择,但只在其中一个表中指定条件。

SELECT name
FROM districts, users
WHERE users.accesslist LIKE '%{$district_name}%' AND districts.name = users.district

就是一个例子。您没有指定表格布局,但必须有一个在两个表之间通用的字段,这些字段是您指定连接条件的字段。

同样,您的查询有语法错误。 LIKE子句中的双引号不应该存在。

答案 2 :(得分:0)

在不知道表模式(主键/外键)的情况下,子查询应该这样做。但它太可怕了。如果您可以使用表格模式,我们可以为您提供更好的选择。

如果他们在用户中,这将返回分区中的所有名称。

SELECT name
FROM districts AS d
WHERE d.name = SELECT name FROM users AS u 

答案 3 :(得分:0)

LIKE'%Example%'命令返回所有字段,如... AAExampleBB ... LIKE'%Example'命令返回所有字段,如... AAExample LIKE'Example'命令返回所有字段,如Example 您也可以使用REGEX'^ Example $'。