sql语句中的like可以用什么代替

sql语句中的like可以用什么代替,第1张

sql server 可以用charindex()

用法如下: col like '%a%' 等价于 charindex('a',col)>0

mysql 可以用 locate()

用法如下: col like '%a%' 等价于 locate('a',col)>0

其实你这个需要程序和数据库有一致的设计。可考虑分区

通过电话前缀来分区,以下只是一个形式,不推荐用中文命名,

这样,只要用户不填写电话,那么前三字符就是xxx,自动会放入 ZFU区。

CREATE TABLE Customer

(

ID INT NOT NULL,

Mobile_PerNO CHAR(3) DEFAULT 'xxx',

Mobile VARCHAR(30)

)

PARTITION BY LIST(Mobile_PerNO)

PARTITION 联通186 VALUES IN (133),

PARTITION 移动139 VALUES IN (139),

PARTITION 电信133 VALUES IN (133),

PARTITION ZFU VALUES IN (xxx)

)

其次你过于依赖数据库而成形的程序,用点不客气的话说,那就是耦合极高的设计。

你其实完全可以在注册时,写入验证,一个手机号就能注册一次。左右打掉空格,这样手机上就能建立唯一索引。 使用LIKE ‘133%’ 至少性能上有一定的飞跃。

至于你的第二个SQL, 在时间和发送号码上可以建立索引,然后条件上写入时间。

也可以使用hash方式按照年季度分区。

理论上 性能提升百倍还是一点问题都没有的。

分区资料 看官方文档。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8694551.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存