sql - 使用变量时 SQL LIKE 不同的输出
问题描述
你好今天我练习了SQL语句。当我尝试使用 %like% 从数据库中进行选择时,当我使用变量和不使用它时,它会输出不同的值。
请参阅以下内容 考虑一个名为 POSTS 的简单表,每个帖子都有 CONTENT 和 HEADING
现在,当我尝试从该表中选择时
SELECT *
FROM Posts
WHERE Headline like '%'+'fun'+'%' OR Content like '%'+'fun'+'%'
我得到以下输出:
但是,如果我尝试在搜索中选择使用变量:
DECLARE @test NVARCHAR = 'fun'
SELECT * FROM Posts
WHERE Headline like '%'+@test+'%' OR Content like '%'+@test+'%'
我得到这个输出:
所以我想知道当理论上它必须具有相同的输出时,这个变量如何改变结果?
解决方案
这是您的声明:
DECLARE @test NVARCHAR = 'fun'
之后,@test
就有了价值'f'
。为什么?它只有一个字符。
在 SQL Server 中使用字符串声明时始终输入长度:
DECLARE @test NVARCHAR(255) = 'fun'
推荐阅读
- scala - 如何使用 sbt 为 scala spark 导入 crossValidatorModel
- javascript - 首次安装 Chrome 扩展后,使用私有企业 chrome 应用程序扩展中的 .crx 文件打开“设置”页面
- angular - 通过 *ngFor 在数组中显示对象
- c# - Neo4j 与实体框架
- angular - 如何在模型中使用子组件在 Angular 6 中打开另一个组件?
- android - 在三星 note 8 上安装 apk 时出现“包解析错误”
- c# - C# - 每 5 分钟视频调用一次方法
- css - Safari 中的 SCSS 语法错误仅破解
- php - 使用变量插入时的 MySQLi 语法错误 (PHP)
- php - 如何使用 PHP 在 MySQL 中插入空间数据?