LIKE 演算子は、WHERE 句の列内の指定されたパターンを検索するために使用されます。
文法:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
pattern ここに指定されたテンプレートが配置されます。ここでは「%」が使用されます。前に配置される場合はワイルドカード
% とも呼ばれます。条件の、つまり... で終わるデータをチェックします; 例: %李
% 条件の後に配置すると、... で始まるデータをチェックします; 例: 李%
%条件の前後に存在する場合、含まれるデータがチェックされます; 例: %李%
#ちょっとした知識ポイント:
#ERROR 1064 (42000): SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、行 11064 の「%z」付近で使用する正しい構文を確認してください。エラーは LIKE クエリ (構文エラー) です。ワイルドカードの前後に引用符がないため、エラーが報告されます...正しい表示、例: "%李%"
例 1: ターミナルは SQL を実行し、それを WHERE 句で使用します。 LIKE
アドレスが Hang で始まる人の情報をクエリしますroot@7c6316b19d80:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 140 Server version: 5.6.51 MySQL Community Server (GPL) mysql> mysql> select * from test_user where address like "Hang%"; +----+--------+-------------+----------+ | id | name | mobile | address | +----+--------+-------------+----------+ | 3 | python | 18856565858 | Hangzhou | | 4 | java | 17756565858 | Hangzhou | | 5 | php | 15556565858 | Hangzhou | | 6 | c# | 17748484142 | Hangzhou | +----+--------+-------------+----------+ 4 rows in set (0.00 sec) mysql>アドレスが次の人の情報をクエリしますu
mysql> select * from test_user where address like "%u"; +----+--------+-------------+----------+ | id | name | mobile | address | +----+--------+-------------+----------+ | 3 | python | 18856565858 | Hangzhou | | 4 | java | 17756565858 | Hangzhou | | 5 | php | 15556565858 | Hangzhou | | 6 | c# | 17748484142 | Hangzhou | +----+--------+-------------+----------+ 4 rows in set (0.00 sec) mysql>
で終わる例 2: Python スクリプトを使用して、LIKE
アドレスに z 文字が含まれる人事情報をクエリしますimport pymysql # 连接数据库 connection = pymysql.connect(host="localhost", user="root", password="123456", database="testing", port=3306, charset="utf8", cursorclass=pymysql.cursors.DictCursor) try: with connection: with connection.cursor() as cursor: sql = """ SELECT * FROM test_user WHERE address LIKE "%z%"; """ cursor.execute(sql) result = cursor.fetchall() for i in result: print(i) except pymysql.err.MySQLError as _error: raise _error
{"id": 3, "name": "python", "mobile": "18856565858", "address": "Hangzhou"} {"id": 4, "name": "java", "mobile": "17756565858", "address": "Hangzhou"} {"id": 5, "name": "php", "mobile": "15556565858", "address": "Hangzhou"} {"id": 6, "name": "c#", "mobile": "17748484142", "address": "Hangzhou"} Process finished with exit code 0アドレスにz文字が含まれていない人事情報をクエリします
try: with connection: with connection.cursor() as cursor: sql = """ SELECT * FROM test_user WHERE address NOT LIKE "%z%"; """ cursor.execute(sql) result = cursor.fetchall() for i in result: print(i) except pymysql.err.MySQLError as _error: raise _error
{"id": 1, "name": "张三三", "mobile": "17748484141", "address": "浙江杭州"} {"id": 9, "name": "111", "mobile": "18847474549", "address": "浙江杭州"} Process finished with exit code 0ナレッジポイント拡張: pythonファジィクエリのようなmysqlデータベース %はPythonの特殊記号です(%sや%d はそれぞれ文字列プレースホルダーと数値プレースホルダーを表します。 誰もが知っているように、mysql のファジー クエリでも % を使用する必要があります。 つまり、最初に確認したい文字列を抽出して、それをパラメータとして渡すことができます。
rree
以上がPythonでmysqlデータベースLIKE演算子を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。