关于Mysql-unknow-column-in-where-clause
写在前边:
已经很久不更新了啊,整个2月份几乎没有遇到什么新鲜事。直到昨天我又犯了一次傻,貌似只有我犯傻的时候才有材料可以跟大家分享…
问题表现:
mysql 报错: unknow column ‘sys’ in where clause 。
事实上这是个挺常见的错误,我猜你大概会说,这个问题不是已经很明了了么? 你查询了一个不存在的字段! 可是事情的真相真的是这样么?并不是,报这个错误的原因还有一种可能就是你的where条件中字符串的拼接出了问题。
现场还原:
- 还是先说一下我犯的傻吧
我首先开始排查的问题的时候输出了我的查询SQL,形似
$sql = 'select * from user where id in ('.implode(',',$idArr).')';
$idArr
为 一个元素很多 的ID
数组,里边的内容都是整型的数字,所以我也没想很多,然后抛出了这个mysql错误,我开始检查我的sql语句 。我用记事本打开了我刚刚打印的sql,开始搜索sys
这个关键词,但是我没注意到我鼠标的位置,记事本默认向下搜索,提示没搜索到。我后来就随机把这个SQL中的id字符串删掉了一段,删的只剩几个,执行,诶!好了!我开始疑惑,难道整型的id查询在数据长的时候会出问题么?加上在CSDN看到某博客上说是字符串拼接的问题,所以我决定给他做一下处理,顺带加上了这么一段注释。
//做一下处理换成字符串否则在$IdString过长的时候会引发unknow column 'sys' in where clause 错误
foreach ($idArr as &$v) {
$v = '\''.$v.'\'';
}
加上之后,问题果不其然的解决了,好的,没有问题,完美!然后开开心心的上个线。
引发问题的真实原因
到了晚上快下班的时候,我在开发另一个需求的时候,突然在列表里看到了一个名为sys
的用户!真的是瞬间像是被一道闪电击中了!卧槽! (这绝对值两个卧槽,才能表达我当时的内心!),是的就是你想的那样!那个用户id数组里有一个用户的id
是sys
,而这东西是个字符串,但是却没被引号包裹。所以才引发了mysql
的unknow column 'sys' in where clause
错误。这才是错误的真相!
好了,不说了,趁着还没有同事发现,我要把这个包含了我愚蠢猜测的注释给删掉。
溜了溜了。
关于Mysql-unknow-column-in-where-clause的更多相关文章
- MySQL 1054错误 Unknown column .... in 'on clause'
ERROR 1054 (42S22): Unknown column ... in 'on clause' 原因: MySQL5.0 Bug, 要把联合的表用括号包含起来才行: 例: SELECT ( ...
- mysql莫名报"unknown column ... in 'on clause'"
今天遇见个会诡异的问题 一个web程序本地调试的好好的,结果发布到服务器上程序就报错了,报"unknown column ... in 'on clause'",网上搜了下,说是m ...
- java.lang.Exception: 资源处理失败,失败原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '?????‰' in 'where clause'
1:Unknown column '?????‰' in 'where clause',这个问题,百度一搜,挺多的,但是貌似好像没有解决我的问题.贴一下我是如何拼接sql的.解决这个sql拼接bug的 ...
- mysql提示Column count doesn't match value count at row 1错误
mysql提示Column count doesn't match value count at row 1错误,后来发现是由于写的SQL语句里列的数目和后面的值的数目不一致, 比如insert in ...
- Unknown column in 'where clause'
Unknown column in 'where clause' 错误如题:Unknown column in 'XXX' 'where clause' 意思是:未知表名 排查 1,查表名是否有错 2 ...
- mysql select column default value if is null
mysql select column default value if is null SELECT `w`.`city` AS `city`, `w`.`city_en` AS `city_en` ...
- mysql错误:Column count doesn't match value count at row 1
mysql错误:Column count doesn't match value count at row 1 mysql错误:Column count doesn't match value cou ...
- 开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误
开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误, 调试后发现是由于写的SQL语句里列的数目和后面的值 ...
- MySQL中出现Unknow column 'xx' in field list的解决办法
首先创建一个表,然后插入数据发现出错误 经过多次尝试发现title前面多了一个空格 我们把空格去掉,然后在插入数据,发现数据创建成功
- mysql ALTER COLUMN MODIFY COLUMN CHANGE COLUMN 区别及用法 (转)
-- 设置或删除列的默认值.该操作会直接修改.frm文件而不涉及表数据.此操作很快 -- ALTER COLUMN ALTER TABLE dsp_ad_center.XianDuan ALTER ...
随机推荐
- Python基础Day6
一.代码块 一个模块(模块就是py文件),一个函数,一个类,一个文件都是一个代码块,一个整体是一个代码块. 交互模式的每一行都是一个代码块(交互模式:命令提示符),相当于每行都在不同的文件 二.id ...
- 运维开发笔记整理-template的使用
运维开发笔记整理-Django的template的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在上一篇博客中我们学习了HttpResponse 和JsonResponse方 ...
- Go语言实现简单的TCP、UDP链接
⼀.使用Golang创建⼀一个TCP连接 1.服务端处理理流程 a.监听端口 b.接受客户端的链接 c.创建Goroutine,处理这个链接(⼀个服务端要链接多个客户端,所以使用Gorouti ...
- 安装gitlab并汉化
简介: GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 它拥有与GitHub类似的功能,能够浏览源代码 ...
- Java7--try - with - resources
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Manag ...
- Mybatis-Generator逆向工程,简单策略
1.下载generator包 https://github.com/mybatis/generator/releases mybatis-generator-core-1.3.6.zip 官网下载即可 ...
- Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
链接: https://codeforces.com/contest/1251/problem/B 题意: A palindrome is a string t which reads the sam ...
- Linux文件系统属性权限chattr与lsattr命令
有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...
- 使用Spring Ehcache二级缓存优化查询性能
最近在对系统进行优化的时候,发现有些查询查询效率比较慢,耗时比较长, 通过压测发现,主要耗费的性能 消耗在 查询数据库,查询redis 数据库:连接池有限,且单个查询不能消耗大量的连接池,占用大量IO ...
- [Shell]CVE-2019-0708漏洞复现及修复补丁
0x01 漏洞原理 Windows系列服务器于2019年5月15号,被爆出高危漏洞,该漏洞影响范围较广,windows2003.windows2008.windows2008 R2.windows 7 ...