sql获取包含特定数字的数字

bbuxkriu  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(391)

如何获得结果中反映的包含878的数字字段。它应该包含两个8和一个7。
编辑:使用tsql
数字8780788700
结果8788

1qczuiv0

1qczuiv01#

只有6种组合,那么最粗糙的组合呢?

Number = 877 OR Number = 787 OR Number = 778 OR Number = 788 OR Number = 878 OR Number = 887

如果数字不只是3位数,则将数字转换为字符串,然后:

NumberAsString LIKE '%877%' OR NumberAsString LIKE '%787%' OR NumberAsString LIKE '%778%' OR ...
htrmnn0y

htrmnn0y2#

更新:这不是一个好的解决方案,相反,我会选择这里建议的下一个解决方案。
如果您使用的是mysql regex,那么regex就是您的朋友:

SELECT * FROM _TABLE_ 
WHERE `Number` REGEXP "[7]{1}" AND `Number` REGEXP "[8]{2}";

更多信息:https://dev.mysql.com/doc/refman/8.0/en/regexp.html
我认为在sql server中应该是这样的:

SELECT * FROM _TABLE_ 
WHERE `Number` LIKE '%[7]{1}%' AND `Number` LIKE '%[2]{1}%';

更多信息:https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql?redirectedfrom=msdn&view=sql-server-ver15

相关问题