MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL:サンプルテーブル「bar」の文字列「foo」を含むすべての行を削除しますか?


テーブル「bar」の文字列「foo」を含むすべての行を削除するには、LIKE演算子を使用する必要があります。

上記の構文を理解するために、「bar」という名前のサンプルテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。以下の表を作成した後、INSERTコマンドを使用して常に文字列「foo」のレコードを挿入します-

mysql> create table bar
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Words longtext,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.61 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。レコードの挿入中に文字列「foo」も追加されます。クエリは次のとおりです-

mysql> insert into bar(Words) values('Javafoo');
Query OK, 1 row affected (0.14 sec)
mysql> insert into bar(Words) values('fooMySQL');
Query OK, 1 row affected (0.19 sec)
mysql> insert into bar(Words) values('Introductiontofoo C and C++');
Query OK, 1 row affected (0.22 sec)
mysql> insert into bar(Words) values('Introduction to Node.js');
Query OK, 1 row affected (0.19 sec)
mysql> insert into bar(Words) values('Introduction to Hibernate framework');
Query OK, 1 row affected (0.17 sec)

これは、selectステートメントを使用してテーブルのすべてのレコードを表示するためのクエリです。クエリは次のとおりです-

mysql> select *from bar;

以下は出力です-

+----+-------------------------------------+
| Id | Words                               |
+----+-------------------------------------+
|  1 | Javafoo                             |
|  2 | fooMySQL                            |
|  3 | Introductiontofoo C and C++         |
|  4 | Introduction to Node.js             |
|  5 | Introduction to Hibernate framework |
+----+-------------------------------------+
5 rows in set (0.00 sec)

これは、文字列「foo」を含むすべての行をテーブル「bar」から削除するためのクエリです-

mysql> delete from bar where Words like '%foo'
   -> or Words like '%foo%'
   -> or Words like 'foo%';
Query OK, 3 rows affected (0.20 sec)

次に、テーブルレコードをもう一度確認します。クエリは次のとおりです-

mysql> select *from bar;

以下は出力です-

+----+-------------------------------------+
| Id | Words                               |
+----+-------------------------------------+
|  4 | Introduction to Node.js             |
|  5 | Introduction to Hibernate framework |
+----+-------------------------------------+
2 rows in set (0.00 sec)

上記のサンプル出力を見てください。文字列「foo」を含むすべてのレコードがテーブル「bar」から削除されています。


  1. MySQLのMATCHおよびAGAINSTを使用して、特定の列に文字列を含む行を選択します

    まずテーブルを作成しましょう- mysql> create table DemoTable1833      (      Name varchar(20)      ); Query OK, 0 rows affected (0.00 sec) テーブルの変更- Mysql> alter table DemoTable1833 ADD FULLTEXT(Name); Query OK, 0 rows affected, 1 warning (0.00 sec) Records: 0 &nb

  2. MySQLを使用してテーブル内の特定の行のみを削除する

    特定の行のみを削除するには、MySQL NOT IN()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1830      (      StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,      StudentName varchar(20)      )AUTO_INCREMENT=101; Query OK, 0 rows affected (0.00 se