【发布时间】:2019-01-27 07:30:30
【问题描述】:
我在查询中使用 find_in_set 从逗号分隔字段中获取数据。但它告诉我错误。
$results = DB::select("SELECT basic.updated_at,basic.updated_by,,ccbi.team_group_id,basic.id
FROM basic_info as basic
INNER JOIN emp_info as emp_details
ON basic.emp_master_id = emp_details.emp_id
WHERE basic.id IN (SELECT basic.id FROM basic_info as basic WHERE basic.updated_at = (SELECT MAX(basic.updated_at) FROM basic_info as basic)) AND basic.team_id = '1' AND ('FIND_IN_SET(?,emp_details.emp_grp)' , '18') ORDER BY basic.id DESC LIMIT 1");
上面的查询显示错误:
Cardinality violation: 1241 Operand should contain 1 column(s)
如果我删除AND ('FIND_IN_SET(?,emp_details.emp_grp)' , '18') 这部分,它将返回正确的结果。
【问题讨论】:
-
在我看来,如果你发现自己使用了 find_in_set,那么你已经迷路了。 :-( - 虽然我会承认它 非常快
-
您在
,,ccbi.team_group_id附近的查询中有一个额外的,。还有ccbi来自哪里? -
@Mozammil 它的错字兄弟。请忽略这部分
标签: mysql laravel find-in-set