MySQLで特定のパターンが文字列に含まれていないことを確認する方法(NOT LIKE演算子の使い方)
MySQLでは、NOT LIKE演算子とワイルドカード文字を組み合わせることで、指定したパターンの文字列が別の文字列内に存在しないことを簡単に確認できます。
構文
NOT LIKE 検索したくないパターン
ここで指定するパターンとは、対象の文字列の中に含まれていてほしくない文字列のパターンのことです。
使用例
例えば、「student」というテーブルに学生の名前が登録されており、その中から名前に「av」という文字列パターンが含まれていない学生の情報だけを取得したいとします。この場合、次のようなMySQLクエリを実行します。
mysql> Select * from Student WHERE name NOT LIKE '%av%'; +------+---------+---------+----------+--------------------+ | Id | Name | Address | Subject | year_of_Admission | +------+---------+---------+----------+--------------------+ | 15 | Harshit | Delhi | Commerce | 2009 | | 21 | Yashraj | NULL | Math | 2000 | +------+---------+---------+----------+--------------------+ 2 rows in set (0.00 sec)
この結果から、名前に「av」を含むレコードが除外され、該当しない学生のデータのみが取得できていることがわかります。
ワイルドカードについて
上記の例で使われている「%」は、NOT LIKE演算子と組み合わせて使用されるワイルドカードです。「%」は0文字以上の任意の文字列に一致するため、「%av%」は「av」が名前のどこかに含まれるすべての文字列を表します。なお、MySQLで使える主なワイルドカードには以下のものがあります。
- %:0文字以上の任意の文字列に一致
- _(アンダースコア):任意の1文字に一致
このようにNOT LIKE演算子を使えば、特定のキーワードを含まないデータの絞り込みを柔軟に行うことができます。
-
Pythonで文字列の平均文字が存在するかどうかを確認する方法
英数字を含む文字列 s が与えられたとき、その文字列の「平均文字」が存在するかどうかを判定し、存在する場合はその文字を返すプログラムを作成します。ここでいう平均文字とは、文字列内の各文字のASCII値の平均を計算し、その小数点以下を切り捨てた値に対応する文字のことです。 問題の例 例えば、入力が s = pqrst の場合、出力は r になります。これは、各文字のASCII値の平均が以下のように計算されるためです。 (112 + 113 + 114 + 115 + 116) / 5 = 570 / 5 = 114 ASCII値 114 に対応する文字は r なので、答えは r となります。 解
-
Pythonで文字列が回文かどうかを判定する方法
Pythonで回文判定を行う方法文字列が回文(前から読んでも後ろから読んでも同じになる文字列)であるかどうかを確認するには、Pythonの標準ライブラリに含まれる reversed() 関数を利用するのが便利です。この関数は逆順のイテレータオブジェクトを返し、それを list() でリストに変換することができます。手順1:reversed()で文字列を逆順にするまず、対象となる文字列を reversed() 関数に渡し、結果をリストとして取得します。>>> str1=malayalam >>> l1=list(reversed(str1)) >>