2012-09-22 48 views
1

我怎样才能做这样的事情:mySQL:在查询中使用LIKE与SUBSTR?

SELECT * FROM .... WHERE wp_users.user_email LIKE '%SUBSTR(wp_callbacks.post_data, INSTR(wp_callbacks.post_data, 'payer_email')+19, 20)%'... 

我所试图做的是查询wp_callbacks表(即存储在像S中的格式:11:“PAYER_EMAIL”; S:18:“一些.email @ gmail.com“...),然后查看来自wp_users的实际电子邮件是否与来自wp_callbacks表的电子邮件匹配。

问题是我不知道电子邮件本身有多长时间,所以我在SUBSTR调用中选取了一个随机值(20)来抓取电子邮件本身的前20个字符,然后我想检查user_email就是LIKE'%...%'那个值。

想法?

+0

你为什么把'SUBSTR'函数的字符串内,也什么是多余'%' –

+0

这只是为了说明什么,我试图做的没有试过。 ..我显然不使用正确的语法,这就是我需要帮助的。我需要使用%...%来做LIKE,而不是完全匹配,以查看SUBSTR字符串是否实际位于原始电子邮件字符串(来自wp_users.user_email)内。 –

回答

3

怎么样 - 虽然

SELECT * 
FROM .... 
WHERE wp_users.user_email LIKE 
    CONCAT('%', 
    SUBSTR(wp_callbacks.post_data, INSTR(wp_callbacks.post_data, 'payer_email')+19, 20), 
    '%'); 
+1

CONCAT就是在...谢谢! –

+0

好 - 很酷的短语 - 要去偷;-) - 很高兴它帮助 –