[英]What is wrong with this mysql query?
海人,
我試過查詢,但我不知道select語句出了什么問題,當我執行此操作時,沒有記錄返回。
似乎rollid = 3是未獲取rollid為3的概率記錄 ,
select * from tbl_emp_personal_master where dEmp_id ='7'
dEmp_id is int
我什至嘗試將引號從'7' to 7
刪除'7' to 7
這對替代文本http://img709.imageshack.us/img709/1901/mysqli.jpg毫無幫助
當我修復表repair table tbl_emp_personal_master
它開始工作
其他答案提示:
select * from tbl_emp_personal_master where dEmp_id = 7
應該管用。 如果不存在,則意味着該行在您的數據庫中不存在。 嘗試:
select * from tbl_emp_personal_master where dEmp_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
直到獲得一些輸出,然后查看每行的最后幾行,您將在其中找到7號員工。
如果不存在,那么您就沒有這樣的員工,那就是您的問題。 如果有,我們會需要,因為你的整數選擇的7些調查應在這種情況下正常工作。
更新:好的,表中只有14條記錄,向我們顯示了以下內容的輸出:
select * from tbl_emp_personal_master order by dEmp_id
我們應該能夠從那里提供幫助。
從7中刪除引號。
7,而不是“ 7”。 您正在嘗試將int字段與字符匹配。
然后,在您的“ tbl_emp_personal_master”中,沒有值為“ 7”的dEmp_id。
select dEmp_id from tbl_emp_personal_master
查詢中select dEmp_id from tbl_emp_personal_master
應該告訴您結果集中列出的值中是否有7個值。 校驗!
我通過修復表repair table tbl_emp_personal_master
解決了它。 我的查詢已執行。 謝謝你的耐心。
我的猜測確實是沒有dEmp_id字段設置為7的記錄。
select * from tml_emp_personal_master where dEmp_id between 6 and 8
應該允許對此進行檢查。
關於字段的外殼,取決於您的DBMS。 在MySQL中包含數字值是完全合法的,甚至是推薦使用的 (請參閱有關SQL注入和數字值的章節)。
關於出了什么問題 ,通常建議不要使用select *,而是為了性能和可讀性列出所有必填字段。
另外,如果查詢是從編程語言運行的,則強烈建議使用可用的參數化查詢(例如,.Net中的DBParameter,PHP中的PDO等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.