我有以下查询:
SELECT u.user_id, u.username, u.email
hp.homepage_id
FROM table_u u
LEFT JOIN table_hp hp
ON (u.user_id = hp.user_id)
WHERE u.blocked = 'N'
AND u.email LIKE 'someemailaddress'
我正在加入user_id列,对于给定的电子邮件地址,我知道两个属性都是相同的,所以我应该得到一个结果,但我仍然没有得到任何结果......所以这个查询有什么问题?
答案 0 :(得分:1)
在LIKE子句中前后放置'%' - 见下文
SELECT u.user_id, u.username, u.email
hp.homepage_id
FROM table_u u
LEFT JOIN table_hp hp
ON (u.user_id = hp.user_id)
WHERE u.blocked = 'N'
AND u.email LIKE '%someemailaddress%'
答案 1 :(得分:0)
您是否在没有LEFT JOIN的情况下尝试查询?
SELECT u.user_id, u.username, u.email
FROM table_u u
WHERE u.blocked ='N'
AND u.email LIKE 'someemailaddress'
它会返回任何结果吗?原因LEFT JOIN只是附加“基表”中现有数据的数据..所以如果LEFT JOIN没有在table_hp中找到任何user_id,那么应该返回一些数据,如果上面的查询中有一些数据
答案 2 :(得分:0)
关键是如何将一些数据存储在数据库中...似乎在一个旧的(错误的)应用程序数据版本中存储没有适当的修剪等。问题是该字段存储在一个空格中..
愚蠢......应该/必须检查存储的实际数据......