Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个mysql查询有什么问题?_Mysql_Select_Integer - Fatal编程技术网

这个mysql查询有什么问题?

这个mysql查询有什么问题?,mysql,select,integer,Mysql,Select,Integer,伙计们 我尝试了一个查询,但我不知道select语句有什么问题,当我执行此查询时,不会返回任何记录 似乎rollid=3是因为未获取rollid为3的prob记录 select * from tbl_emp_personal_master where dEmp_id ='7' dEmp_id is int 我甚至试着将引号从'7'删除到7,但没有用 当我修复我的表时修复表tbl\u emp\u personal\u master开始工作从7中删除引号。7而不是“7”。您正在尝试将int字段

伙计们

我尝试了一个查询,但我不知道select语句有什么问题,当我执行此查询时,不会返回任何记录

似乎rollid=3是因为未获取rollid为3的prob记录

select * from tbl_emp_personal_master where dEmp_id ='7'


dEmp_id is int
我甚至试着将引号从
'7'删除到7
,但没有用


当我修复我的表时
修复表tbl\u emp\u personal\u master
开始工作

从7中删除引号。

7而不是“7”。您正在尝试将int字段与字符匹配。

其他答案建议:

select * from tbl_emp_personal_master where dEmp_id = 7
应该有用。如果不存在,则表示数据库中不存在该行。尝试:

select * from tbl_emp_personal_master where dEmp_id < 1000
从tbl\u emp\u personal\u master中选择*,其中dEmp\u id<1000

然后查看是否返回任何结果。

让我们尝试一下调试。你这么说

select * from tbl_emp_personal_master where dEmp_id = '7'
不起作用,也不起作用:

select * from tbl_emp_personal_master where dEmp_id = 7
然后你应该分离出什么是有效的。请尝试以下各项:

select * from tbl_emp_personal_master where dEmp_id < 10   order by dEmp_id desc
select * from tbl_emp_personal_master where dEmp_id < 100  order by dEmp_id desc
select * from tbl_emp_personal_master where dEmp_id < 1000 order by dEmp_id desc

我们应该可以从那里提供帮助。

那么在您的“tbl\u emp\u personal\u master”中没有值为“7”的dEmp\u id


从tbl_emp_personal_master中选择dEmp_id
查询应告诉您在结果集中列出的值中是否有7个值。检查

我的猜测是确实没有记录将dEmp_id字段设置为7

  select * from tml_emp_personal_master where dEmp_id between 6 and 8
应该允许检查这个

关于字段的封装,这取决于您的DBMS。在MySQL中封装数值是完全合法的,甚至是公平的(参见关于SQL注入和数值的章节)

关于错误,一般建议不要使用select*但为了性能和可读性目的列出所有必需字段


此外,如果查询是从编程语言运行的,强烈建议使用参数化查询(如.Net中的DBParameter、PHP中的PDO等)。

我通过修复我的表
修复表tbl\u emp\u personal\u master
解决了这个问题。我的询问被执行了。感谢您的耐心。

您确定表中有符合条件的记录吗?@David ya当我给dEmp_命名时,有记录,它得到了相应的记录。您可以显示表中的数据吗?想知道此查询出错的原因。找到了吗?你可能想“从tbl中选择*以确保id 7实际存在…我尝试了第二个id,它工作了,我不知道这是非常奇怪的,它最多需要6个EMPID,但没有7@Sarnya,你是说“<1000”版本显示了您的员工编号7?是paxdiablo,但当我给出=symbol@paxdiablo我的表包含14条记录,我最多可以获得第6条记录,但从第7条开始,当我给出where条件时,我无法获得这些记录,请参阅更新。这张桌子很小,因此,如果你向我们展示整张桌子,应该更容易找出问题所在。@paxdiablo请看上面的屏幕截图,你可以接受你的答案,这样其他人就可以从中受益。
  select * from tml_emp_personal_master where dEmp_id between 6 and 8