我给了一张信用卡,我试图用卡的前几位确定信用卡的类型。
例如,如果卡以4833开头,则我的查询应返回Visa
如果从4026开始那么它将返回Visa Electron。
如何编写查询来执行此操作?
我的桌名是卡片
className.spam...
答案 0 :(得分:1)
正则表达式适用于您的情况。你需要的正则表达式只是模式后跟一个通配符。
但是,通过简单匹配,您将获得多个结果,例如4026将匹配4和4026.为了解决这个问题,您选择最严格的一个作为匹配,最严格的一个将是前缀最长的。
SELECT card_name
FROM cards
WHERE [CREDIT CARD NUMBER] LIKE CONCAT(prefix, '%')
ORDER BY LENGTH(prefix) DESC
LIMIT 1;