UPDATEステートメントのSET句の列の順序の重要性は何ですか? MySQLによって返される結果セットに大きな違いがありますか?
MySQLは式で使用される列名の更新された値を提供するため、UPDATEステートメントのSET句の列の順序は重要です。はい、MySQLによって返される結果セットに大きな違いがあります。以下はそれを明確にするための例です-
この例では、テーブル「入札」があります。まず、SET句の最初の列として「tender_id」、2番目の列として「rate」を使用してUPDATEステートメントを記述し、次に、最初の列として「rate」、2番目の列として「tender_id」を使用してUPDATEステートメントを記述します。テーブル「入札」。
mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+---------+------+ | 200 | ABC | 1000 | | 300 | ABD | 6000 | | 301 | ABE | 7000 | | 302 | ABF | 3500 | | 303 | ABG | 3600 | +-----------+---------+------+ 5 rows in set (0.00 sec) mysql> UPDATE tender SET tender_id = tender_id + 100, rate = tender_id * 4 WHERE tender_id = 200; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0
上記のクエリは、最初に「tender_id」の値を更新し、次に「tender_id」の新しい値に従って「rate」の値を更新します。これは、MySQLによって返される結果セットで次のように観察できます-
mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+---------+------+ | 300 | ABC | 1200 | | 300 | ABD | 6000 | | 301 | ABE | 7000 | | 302 | ABF | 3500 | | 303 | ABG | 3600 | +-----------+---------+------+ 5 rows in set (0.00 sec) mysql> UPDATE tender1 SET rate = tender_id * 4, tender_id = tender_id + 200 WHERE company = 'ABD'; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0
ここで、上記のクエリは、最初に「tender_id」の古い値に従って「rate」の値を更新し、次に「tender_id」の値を更新します。これは、MySQLによって返される結果セットで次のように確認できます-
>mysql> Select * from tender; +-----------+---------+------+ | tender_id | company | rate | +-----------+---------+------+ | 300 | ABC | 1200 | | 500 | ABD | 1200 | | 301 | ABE | 7000 | | 302 | ABF | 3500 | | 303 | ABG | 3600 | +-----------+---------+------+ 5 rows in set (0.00 sec)
このように、SET句の列の順序を変更すると、出力に大きな違いが生じます。
-
MySQLの結果セットを指定されたものと同じにする方法は?
これには、MySQL FIND_IN_SET()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1563 -> ( -> StudentId int, -> StudentName varchar(20) -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into De
-
JAVAでMySQL接続を確立する方法は? locahostに設定するポート番号は何ですか?
URLでポート番号3306を使用する必要があります。構文は次のとおりです- jdbc:mysql://localhost:3306 例 import java.sql.Connection; import java.sql.DriverManager; public class MySQLConnectionToJava { public static void main(String[] args) { String JDBCURL="jdbc:mysql://localhost:3306/sample?useSS