如何在MySQL表中搜索前缀?

时间:2017-12-20 03:07:30

标签: mysql select prefix

我给了一张信用卡,我试图用卡的前几位确定信用卡的类型。
例如,如果卡以4833开头,则我的查询应返回Visa 如果从4026开始那么它将返回Visa Electron。

如何编写查询来执行此操作?

我的桌名是卡片

className.spam...

1 个答案:

答案 0 :(得分:1)

正则表达式适用于您的情况。你需要的正则表达式只是模式后跟一个通配符。

但是,通过简单匹配,您将获得多个结果,例如4026将匹配4和4026.为了解决这个问题,您选择最严格的一个作为匹配,最严格的一个将是前缀最长的。

SELECT card_name 
FROM cards 
WHERE [CREDIT CARD NUMBER] LIKE CONCAT(prefix, '%')
ORDER BY LENGTH(prefix) DESC 
LIMIT 1;