我在数据库中有一个varchar列,并且有一个需求,因此用户可以输入/从例如/ ABC001到ABC100的范围
我有以下查询但觉得如果该范围内的任何值存在,可能不够严格。
SELECT count(*) FROM MyTable where MyColumn between 'ABC001' and 'ABC005'
我感觉应该使用订单,或者有更好的方法来计算字母数字范围内的值的存在
答案 0 :(得分:1)
无需订单。那应该是完美的。
答案 1 :(得分:0)
如果要增强该操作,可以在其上创建索引。
按操作顺序在查询执行结束时完成,因此数据将以相同的方式重试。
答案 2 :(得分:0)
还是有更好的计算方法 一个人的价值观的存在 字母数字范围
最好的方法是:
SELECT count(*) FROM MyTable where MyColumn>='ABC001' and MyColumn<='ABC005'
我发现大多数人都不记得BETWEEN
是否包含或排除了“终点”。只需始终使用>=
和/或>
和/或<=
和/或<
,您就可以获得更高的清晰度和灵活性。
任何ORDER BY
都会应用于符合WHERE
条件的结果行集,并且与WHERE
过滤无关。如果您希望以特定顺序设置最终结果集,则可以使用它,但它不会影响结果中包含哪些行。