【发布时间】:2014-03-26 21:55:05
【问题描述】:
对于我网站上的用户(标识为 $fb_user_id),我正在尝试提取产品表 ($productstable) 中产品所有者 ID (prod_owner_fb_id) 与用户朋友列表 ( $usertable.fb_friends) 列,存储为逗号分隔字符串 (varchar)。
下面使用 IN 子句的查询结果只有在 fb_friends 列中有单个值时才能成功提取记录,而不是多个值。
我是业余爱好者,所以不确定我是否遇到了复杂的问题或只是语法/用户错误。感谢任何帮助。
我的查询:
$query = "SELECT * FROM $productstable, $usertable WHERE $usertable.fb_user_id = $fb_user_id AND $productstable.prod_owner_fb_id IN ($usertable.fb_friends)";
示例数据:
用户表 - 用户表(两个字段 varchar):
fb_user_id fb_friends
111111111111111 21709455,222222222222222,82101450,503046016,507...
222222222222222 111111111111111, 697041857,333333333333333,1000006...
333333333333333 111111111111111,1205332730,222222222222222
产品表 - productstable(两个字段 varchar):
product_id prod_owner_fb_id
A 111111111111111
B 111111111111111
C 222222222222222
注意 - LIKE 子句也不成功 - 没有找到记录,没有错误:
$query = "SELECT * FROM $productstable, $usertable WHERE $usertable.fb_user_id = $fb_user_id AND $productstable.prod_owner_fb_id LIKE '%" . $usertable1.fb_friends . "%'";
【问题讨论】:
标签: php mysql string-matching multiple-tables