顯示具有 MySqL 標籤的文章。 顯示所有文章
顯示具有 MySqL 標籤的文章。 顯示所有文章

2024年4月21日 星期日

MYSQL 查詢多欄位最大值/最小值,取唯一最大/最小 怎做? GREATEST、LEAST、MAX、MIN

 想要在 MySQL 中同時搜索多個欄位,並找到它們的最大值,可以用用 GREATEST() 函數。

這個函數接受多個參數,並返回這些參數中的最大值。

SELECT GREATEST(column1, column2, column3) AS max_value

FROM your_table;

在這個示例中,column1、column2、column3 是你要搜索的多個欄位,your_table 是你的表名。這個查詢將返回這些欄位中的最大值作為 max_value 列的結果。


你可以根據需要將欄位和表名替換為你實際使用的值。

最小值則用LEAST()
但是執行後,會回傳各欄位最小值,這時候再透過MAX()或是MIN()做再一次比較即可。

SELECT MAX(GREATEST(column1, column2, column3)) AS max_value

FROM your_table;


SELECT MIN(LEAST(column1, column2, column3)) AS max_value

FROM your_table;


大中取小也可以

SELECT MIN(GREATEST(column1, column2, column3)) AS max_value

FROM your_table;


小中取大:

SELECT MAX(LEAST(column1, column2, column3)) AS max_value

FROM your_table;




MYSQL IN 雙查詢條件(A,B) IN ((A1, B1), (A2, B2), ...)與多條件(A, B, C) IN ((A1, B1, C1), (A2, B2, C2), ...);

如果有兩個條件要查詢,但是這條件是多組成對的條件,例如A1與B1一組, A2與B2一組以此類推這樣做查詢,且這兩個條件是超過100組的,我該怎做?


假設你有一個表 your_table,包含欄位 A 和 B,你想要查詢符合多組成對條件的記錄,可以像這樣組合你的查詢:

SELECT * 

FROM your_table

WHERE (A, B) IN ((A1, B1), (A2, B2), ...);

這樣的查詢將同時匹配所有組合 (A1, B1)、(A2, B2) 等。請確保將實際的值替換為你的組合數據。

在這個範例中,A 和 B 是你表中的欄位名稱,而 (A1, B1)、(A2, B2) 等則是你要查詢的具體值。這個查詢將返回表中符合給定條件的記錄。請確保將 your_table 替換為你實際的表名,A1、B1、A2、B2 等則替換為你要查詢的實際值。

如果變成3個查詢條件則....
SELECT * 
FROM your_table
WHERE (A, B, C) IN ((A1, B1, C1), (A2, B2, C2), ...);

若有更多查詢條件,則以此類推歐。


2024年4月20日 星期六

MYSQL VARCHART MAX MIN 要點

自學MYSQL的缺點,就是書本通常沒翻完就開始寫了,所以要透過網路學習更多基礎知識

VARCHAR是最近學到的新用法,自己也做一下學習紀錄。 

出處:https://blog.csdn.net/sanqima/article/details/123092463









2023年9月4日 星期一

CHARTGPT:MySqL workbench 滑鼠右鍵刪除ROW指令不能使用,你能解解疑惑?

 滑鼠右鍵刪除ROW指令不能使用,你能解解疑惑?

本篇"根據OpenAI GPT-3的解釋:[ 

如果在MySQL Workbench中無法使用滑鼠右鍵刪除行(Row),可能是由於幾種可能的原因。以下是一些可能的解決方法:

 

檢查表許可權:

 

確保你有足夠的許可權來刪除表中的行。如果你沒有足夠的許可權,你將無法刪除行。請檢查你的MySQL用戶許可權。

檢查表鎖:

 如果表被其他用戶鎖定,你可能無法刪除行。請確保沒有其他用戶正在編輯或鎖定表。

檢查工作區設置:

 有時候,MySQL Workbench可能會出現一些奇怪的行為,可能與工作區設置有關。你可以嘗試重新啟動MySQL Workbench或者檢查工作區設置是否正確。

嘗試使用鍵盤快速鍵:

 

如果按右鍵不起作用,你可以嘗試使用鍵盤快速鍵來刪除行。通常情況下,你可以選擇一行,然後按下"Delete"鍵或"Backspace"鍵來刪除行。

檢查MySQL Workbench版本:

 如果你使用的是較舊版本的MySQL Workbench,可能會出現一些不穩定性或錯誤。嘗試升級到最新版本,看看問題是否得到解決。

重新連接到資料庫:

 

有時候,重新連接到資料庫伺服器可能會解決一些問題。嘗試關閉並重新打開MySQL Workbench,然後重新連接到資料庫。

檢查日誌和錯誤消息:

 MySQL Workbench中查看日誌和錯誤消息,可能會提供有關為什麼無法刪除行的更多資訊。錯誤消息可能會指示問題的原因。

如果嘗試了以上方法後仍然無法解決問題,建議提供更多詳細資訊,例如出現的錯誤消息或問題的具體情況,以便更好地説明你解決問題。

]


好像幫助滿有限的,最後筆者透過ado直接執行sql語法處理掉。


當然不免也問問大神意見:

本篇"根據OpenAI GPT-3的解釋:[ 

如果你改用VBA ADO方式執行SQL語法來刪除MySQL資料庫中的行,你可以按照以下步驟進行操作:

 首先,確保你已經在VBA專案中引用了Microsoft ActiveX Data Objects庫。這個庫包含了用於與資料庫進行交互的ADO物件和方法。

 

創建一個連接到MySQL資料庫的連接字串。連接字串應包括伺服器名稱、用戶名、密碼、資料庫名稱以及其他連接參數,以便建立與資料庫的連接。

Dim conn As Object

Set conn = CreateObject("ADODB.Connection")

 ' 設置連接字串

conn.ConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=your_server;DATABASE=your_database;UID=your_username;PWD=your_password;"

 ' 打開資料庫連接

conn.Open

創建一個SQL語句,以便刪除資料庫表中的行。例如:

Dim sql As String

sql = "DELETE FROM your_table WHERE your_condition;"

確保將your_table替換為要刪除行的表名,並在your_condition中提供適當的條件。

 創建一個命令物件並執行SQL語句:

Dim cmd As Object

Set cmd = CreateObject("ADODB.Command")

 ' 關聯連接

Set cmd.ActiveConnection = conn

 ' 設置SQL語句

cmd.CommandText = sql

 ' 執行SQL語句

cmd.Execute

最後,關閉連接:

conn.Close

Set conn = Nothing

這樣,你就可以使用VBA ADO方式執行SQL語法來刪除MySQL資料庫中的行。確保在代碼中適當地處理錯誤,以處理潛在的異常情況。此外,如果你需要執行其他類型的資料庫操作,也可以使用類似的方法。

 ]

 

 

 

 

 

 


指數變化(2025.08.29) 開始透過AI做整理

 指數變化(2025.08.29) 開始透過AI做整理 上周焦點: 8/19(二)   美國房屋開工率 5%月增  美國建築許可月增率 月增2.8% 8/20(三)   美國房貸綜合指數 月減0.5%  美國30年期房貸利率 6.69%  美國15年期房貸利率 5.8~5.71%...