簡體   English   中英

(MYSQL)選擇具有特定參數的最后一行

[英](MYSQL) Selecting last row with specific parameters

我在給我一個PHP項目時遇到麻煩。 更具體地說,MYSQL數據庫讓我感到困擾。這是整個過程的想法:

  • 我已經建立了一個數據庫,其中包含3個表-T1,T2,Log。 T1存儲雇主的姓名和代碼; T1存儲工人的姓名和代碼; 日志存儲ID(自動遞增),雇主名稱,工人名稱,開始日期和結束日期(工作)。

  • 我制作了一個包含兩個字段的表單-雇主代碼和工人代碼。 我的PHP代碼檢查在字段中輸入的代碼(檢查它們是否為空,然后檢查它們是否與T1和T2中的信息匹配)。 然后使用“提交”按鈕發送所有數據並將其存儲到日志表中。 但是我必須在其中添加兩個單選按鈕:一個用於工人的開始時間,另一個用於他的結束時間。 當按下開始單選按鈕時,SQL請求將執行以下操作-插入雇主名稱,工人名稱和開始日期。 這部分在這里完美地工作。 我的結束日期列設置為將當前日期更新。

如果按下“結束”單選按鈕,我希望發生以下情況:在emp和worker的表單名稱中找到帶有選定名稱的LAST行(它們在表單中輸入的代碼經過檢查,實際名稱存儲為變量)。 所以有可能做這樣的事情:

SELECT ID FROM Log ORDER BY ID DESC LIMIT 1
WHERE Worker_Name='$nameW' and Employer_Name='$nameE'
  • $ nameW是工人的名稱,$ nameE是雇主的名稱。

我說這樣的話,是因為它在整個WHERE部分給了我一個錯誤,並且不接受我的查詢。

任何幫助,將不勝感激。 提前致謝!

您的查詢是錯誤的,如下使用它:

 SELECT `ID` FROM `Log` 
 WHERE `Worker_Name`='{$nameW}' and `Employer_Name`='{$nameE}'
 ORDER BY `ID` DESC LIMIT 1

您的查詢不正確,您必須將定單依據和限制部分放在最后(即where條件之后)。 針對您的情況的正確查詢將是:

SELECT ID FROM Log 
WHERE Worker_Name='$nameW' and Employer_Name='$nameE' ORDER BY ID DESC LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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