欄位 ecnNO 存儲 'a1,b2,c3' 格式,需查詢第一段等於 'a1' 的記錄。
SELECT COUNT(*) AS lot
FROM OA_sample_check
WHERE LEFT(ecnNO, LOCATE(',', ecnNO) - 1) = 'a1';
LOCATE(',', ecnNO):找到第一個逗號位置(從 1 起)LEFT(str, len):取左側 len 字符LOCATE - 1:排除逗號本身LOCATE 返回 0,LEFT(str, -1) 返回空串 → 不匹配 'a1'WHERE LEFT(ecnNO, IF(LOCATE(',', ecnNO)>0, LOCATE(',', ecnNO)-1, LENGTH(ecnNO))) = 'a1'MySQL 8.0+ 可用 JSON_EXTRACT 或 SUBSTRING_INDEX:
-- 取第 2 段
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(ecnNO, ',', 2), ',', -1);
避免在關係型資料庫存逗號分隔值,違反第一範式。應拆分為關聯表或用 JSON 型別(5.7+)。