2013-12-17 50 views
1

我運行該SQL查詢MySQL的GET字符串到左的字符,並與另一列

SELECT DISTINCT a.user_login, a.user_email, c.domain 
FROM wp_users a 
JOIN wp_usermeta b ON a.id = b.user_id 
JOIN wp_blogs c ON b.meta_value = c.site_id 
WHERE meta_key = 'primary_blog' and 
ORDER BY `a`.`ID` ASC 
LIMIT 0 , 100 

結果

user_login  user_email    domain 
abc    [email protected]   laskdlasd.com 
cdestefano  [email protected] kaskdjkasjdkasd 
fran    [email protected]   kasdllasdlasd 

我只想要其中USER_LOGIN不等於行比較到@之前的字符串,即從上面的結果我只需要下面的行

abc    [email protected]   laskdlasd.com 

我試過下面的代碼,但它不能正常工作

SELECT DISTINCT a.user_login, a.user_email, c.domain 
FROM wp_users a 
JOIN wp_usermeta b ON a.id = b.user_id 
JOIN wp_blogs c ON b.meta_value = c.site_id 
WHERE meta_key = 'primary_blog' 
AND a.user_login != LEFT(a.user_email, LOCATE( '@', a.user_email)) 
ORDER BY `a`.`ID` ASC 
LIMIT 0 , 100 

如何得到想要的結果?

回答

0

添加本就WHERE條款,

AND SUBSTRING(REPLACE(user_email, user_login, ''), 1, 1) <> '@' 
0

嘗試

SELECT * 
FROM wp_users a 
JOIN wp_usermeta b ON a.id = b.user_id 
JOIN wp_blogs c ON b.meta_value = c.site_id 
WHERE user_login != substring_index(user_email,'@',1) 
相關問題