SQLでチェックデジットをチェック(モジュラス10)
ソーシャルブックマークに追加:まぁ、こんなこと誰もしないと思いますが、
サクッとチェックしたい時は楽かも。
substringしまくり。
----------------------------------------------------------
SELECT
case
when `jan_code`='' then '空です。'
when `jan_code` is null then '空です。'
when `jan_code` is null then '空です。'
when length(`jan_code`) <> 13 then '桁数が違います。'
when substring(substring(
substring(`jan_code`, 1,1) +
substring(`jan_code`, 3,1) +
substring(`jan_code`, 5,1) +
substring(`jan_code`, 7,1) +
substring(`jan_code`, 9,1) +
substring(`jan_code`,11,1) +
(
substring(`jan_code`, 2,1) +
substring(`jan_code`, 4,1) +
substring(`jan_code`, 6,1) +
substring(`jan_code`, 8,1) +
substring(`jan_code`,10,1) +
substring(`jan_code`,12,1)
) * 3,-1,1)-10,-1,1) <> substring(`jan_code`,13,1)
then '不正です。'
else '正常です。'
end,
`jan_code`
FROM
jan_code_table
----------------------------------------------