这是一个简单的问题,但还没有得到解决方案。我想从这里解释的列中获取有效数字。
这里的问题是选择一个值
SELECT absent_id FROM staff_attendance WHERE attendance_date='2017-02-06' AND absent_id='25' AND school_id='1'
但absent_id表值存储在
中`absent_id`
1,12,25
这里显然不需要表格,因为它不是有效数字。
期望的结果是
absent_id
25
答案 0 :(得分:0)
您应该真正规范化表格结构。切勿在一行和一列中存储多个值。这是非规范化设计的众多问题之一。
目前,您可以使用MySQL内置FIND_IN_SET
:
SELECT
absent_id ids,
'25' absent_id
FROM staff_attendance
WHERE attendance_date='2017-02-06'
AND find_in_set('25', absent_id)
AND school_id='1'
上述方法可行,但如果数据集很大,则会非常慢。这是因为MySQL不能在列上使用索引加上它是一个字符串搜索操作,这种操作一定很慢。
答案 1 :(得分:0)
如果absent_id是integer
数据类型列。那么试试吧
这个..
SELECT absent_id FROM staff_attendance WHERE attendance_date='2017-02-06' AND absent_id=25 AND school_id=1