当我使用SQL查询MS access或MS SQL时。我可以使用以下sql来检索数据
SELECT ORDER_NO,NAME FROM ORDER WHERE LEFT(ORDER_NO,6)='123456'检索订单号以'123456‘开头的记录
但是LEFT不能在宇宙U2.net中工作。
如下所示,但是查询返回结果很慢。
SELECT ORDER_NO,NAME FROM ORDER WHERE ORDER_NO LIKE '%123456%'我正在寻找替代的,左,中等,以优化代码
谢谢
发布于 2015-08-01 01:17:22
如果去掉第一个'%‘,速度会更快吗?您要在字段的任何部分寻找123456,而不是从字段的开头开始。
这需要读取和计算每条记录中每个the字段的整个值,而不仅仅是第一个字符。对于大型数据集,这可能是一个很大的差异,特别是在非索引字段上。
发布于 2016-06-24 23:13:32
您可以只使用选择运算符。我认为这样会更快,但没有测试: SELECT ORDER_NO,NAME FROM ORDER WHERE ORDER_NO = "123456]‘
对于关键字位于中间的order,您可以这样做:选择ORDER_NO,NAME FROM ORDER WHERE ORDER_NO =“123456”
对于以字符串结尾的订单: SELECT ORDER_NO,NAME FROM ORDER WHERE ORDER_NO = "[123456‘
,,[]是结尾,开头是,包含。我相信这些比类似的查找更快。
此外,还可以将LIKE与省略号通配符语法一起使用: SELECT ORDER_NO,NAME FROM ORDER WHERE ORDER_NO LIKE "...123456‘SELECT ORDER_NO,NAME FROM ORDER WHERE ORDER_NO LIKE "...123456...’选择ORDER_NO,NAME FROM ORDER WHERE ORDER_NO LIKE“123456...”
https://stackoverflow.com/questions/31578921
复制相似问题