簡體   English   中英

這個mysql查詢怎么了?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM