PythonでmysqlデータベースLIKE演算子を使用する方法

WBOY
リリース: 2023-05-31 21:46:10
転載
1593 人が閲覧しました

LIKE 演算子は、WHERE 句の列内の指定されたパターンを検索するために使用されます。

文法:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
ログイン後にコピー

pattern ここに指定されたテンプレートが配置されます。ここでは「%」が使用されます。前に配置される場合はワイルドカード

% とも呼ばれます。条件の、つまり... で終わるデータをチェックします; 例: %李

% 条件の後に配置すると、... で始まるデータをチェックします; 例: 李%

%条件の前後に存在する場合、含まれるデータがチェックされます; 例: %李%

#ちょっとした知識ポイント:

#ERROR 1064 (42000): SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、行 1

1064 の「%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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!