姓のレコードに基づいてMySQLクエリに列数を追加しますか?
まずテーブルを作成しましょう-
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(100), LastName varchar(100) ); Query OK, 0 rows affected (1.00 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable(FirstName,LastName) values('David','Miller'); Query OK, 1 row affected (0.35 sec) mysql> insert into DemoTable(FirstName,LastName) values('Carol','Miller'); Query OK, 1 row affected (0.37 sec) mysql> insert into DemoTable(FirstName,LastName) values('John','Doe'); Query OK, 1 row affected (0.21 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+----+-----------+----------+ | Id | FirstName | LastName | +----+-----------+----------+ | 1 | David | Miller | | 2 | Carol | Miller | | 3 | John | Doe | +----+-----------+----------+ 3 rows in set (0.00 sec)
以下は、「Miller」が2回表示されているような姓のレコードの列数を追加するためのクエリです::
mysql> select Id, FirstName, LastName,Count from DemoTable tbl1 JOIN (select count(*) as Count, LastName from DemoTable GROUP BY LastName) tbl2 using(LastName);
これにより、次の出力が生成されます-
+----+-----------+----------+-------+ | Id | FirstName | LastName | Count | +----+-----------+----------+-------+ | 1 | David | Miller | 2 | | 2 | Carol | Miller | 2 | | 3 | John | Doe | 1 | +----+-----------+----------+-------+ 3 rows in set (0.00 sec)>
-
選択クエリから列を追加する方法ですが、新しい列の値はMySQL選択クエリの行数になりますか?
このために、MySQL row_number()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1342 -> ( -> Score int -> ); Query OK, 0 rows affected (0.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1342 values(80); Query OK, 1 row affecte
-
名前レコードのある列の最後のスペースの左側にあるすべてを選択するMySQLクエリ
これには、LEFT()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1939 ( FullName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1939 values('Adam Smith'); Query OK, 1 row affected