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」から削除されています。
-
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
-
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