【发布时间】:2021-11-11 23:48:03
【问题描述】:
这个让我很困惑,我想我会把它提交给 SO 社区寻求帮助。
用户想要选择所有以某个ID开头的订单,例如:
123 将返回 123、12345、1238790 等。但是 ID 是一个 int 列。
我正在使用 nHibernate,我目前的线路是:
criteria.Add(Restrictions.Eq("Id", itemId));
但这只会返回 123。我可以执行 Restrictions.Like,但它会转换为 SQL LIKE 子句,并且不适用于 int col。
有什么想法吗?
编辑:对不起,数据库是 SQL Server 2008
【问题讨论】:
-
非常奇怪的要求。为什么用户需要这样的东西?
-
想一想从数学上讲,给定数字“以”
123开头的含义。 -
这应该可以将
id转换为字符串,但这会导致性能下降,因为不会使用索引。这确实是个奇怪的要求。 -
@Oded,数据库可以根据存储在不同位置或含义不同的 ID 范围进行拆分。
-
@DanLehmann - “可能”。可能不是。
标签: sql sql-server-2008 nhibernate