gpt4 book ai didi

sql - 如何在整数列上指定 "Like"?

转载 作者:行者123 更新时间:2023-12-01 08:00:55 26 4
gpt4 key购买 nike

这个让我很困惑,我想我会把它提交给 SO 社区寻求帮助。

用户想要选择以某个ID开头的所有订单,示例:

123 将返回 123123451238790 等。但是 ID 是一个 int 列。

我正在使用 nHibernate,目前我的线路是:

criteria.Add(Restrictions.Eq("Id", itemId));

但这只会返回 123。我可以执行 Restrictions.Like,但它会转换为 SQL LIKE 子句并且不适用于 int col。

有什么想法吗?

编辑:抱歉,数据库是 SQL Server 2008

最佳答案

不幸的是,您没有指定正在使用的什么数据库(SQL 只是查询语言....),但是如果您使用的是 SQL Server(Microsoft RDBMS 产品) ,然后您可以创建一个 VARCHAR(15) 类型的计算列来保存您的 INT 的字符串表示形式,然后只搜索那个....

ALTER TABLE dbo.YourTable
ADD IdAsString AS CAST(Id AS VARCHAR(15)) PERSISTED -- PERSISTED might not work - depending on your version of SQL Server

SELECT (list of columns)
FROM dbo.YourTable
WHERE IdAsString LIKE '123%'

这是否真的具有商业意义,是完全不同的故事......(我同意 Oded 和 Matt Ball 的观点......)

但由于现在这是一个字符串列,您应该能够像您提到的那样在 NHibernate 中使用您的 Restrictions.Like 方法。

关于sql - 如何在整数列上指定 "Like"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com