Maison  >  Article  >  base de données  >  MySQL implémente la fonction de recherche de plats du système de commande

MySQL implémente la fonction de recherche de plats du système de commande

PHPz
PHPzoriginal
2023-11-01 14:19:47899parcourir

MySQL 实现点餐系统的菜品搜索功能

MySQL implémente la fonction de recherche de plats du système de commande, des exemples de code spécifiques sont requis

Titre : MySQL implémente la fonction de recherche de plats du système de commande

Dans le système de commande, la fonction de recherche de plats est l'une des très fonctions importantes et communes. Avec l'aide de la fonction puissante de la base de données MySQL, nous pouvons facilement implémenter la fonction de recherche de plats et offrir aux utilisateurs une expérience de commande plus rapide et plus pratique.

Ci-dessous, j'utiliserai un exemple simple pour présenter comment utiliser MySQL pour implémenter la fonction de recherche de plats du système de commande. Supposons que nous ayons une table de menu nommée "menu", qui contient des champs : ID du plat (menu_id), nom du plat (menu_name), prix du plat (menu_price), catégorie du plat (menu_category), description du plat (menu_description), image du plat ( menu_image) , etc.

Tout d'abord, nous devons créer un index de texte intégral. L'index de texte intégral est un index spécial fourni par MySQL pour rechercher et faire correspondre des données texte. Nous pouvons utiliser l'instruction suivante pour créer un index de texte intégral sur les champs nom du plat (menu_name) et description du plat (menu_description) de la table de menu :

ALTER TABLE menu ADD FULLTEXT(menu_name, menu_description);

Ensuite, nous pouvons implémenter la fonction de recherche de plat via l'exemple de code suivant :

import mysql.connector

# 创建与MySQL数据库的连接
cnx = mysql.connector.connect(user='your_username', password='your_password', host='your_host', database='your_database')

# 创建游标
cursor = cnx.cursor()

# 获取用户输入的搜索关键词
keyword = input("请输入搜索关键词:")

# 使用全文索引进行搜索
query = "SELECT * FROM menu WHERE MATCH(menu_name, menu_description) AGAINST(%s IN BOOLEAN MODE)"
params = (keyword,)
cursor.execute(query, params)

# 获取搜索结果
results = cursor.fetchall()

if len(results) == 0:
    print("抱歉,没有找到与“{}”相关的菜品。".format(keyword))
else:
    print("以下是与“{}”相关的菜品:".format(keyword))
    for result in results:
        print("菜品ID:", result[0])
        print("菜品名称:", result[1])
        print("菜品价格:", result[2])
        print("菜品分类:", result[3])
        print("菜品描述:", result[4])
        print("菜品图片:", result[5])
        print("-------------------")

# 关闭游标和连接
cursor.close()
cnx.close()

Dans l'exemple de code ci-dessus, nous créons d'abord une connexion à la base de données MySQL et initialisons le curseur. Ensuite, les mots-clés de recherche sont obtenus via la saisie de l'utilisateur et les mots-clés sont transmis en tant que paramètres à l'instruction SQL pour effectuer une recherche à l'aide de l'index de texte intégral. Enfin, obtenez les résultats de la recherche et affichez-les.

Il est à noter que « EN MODE BOOLÉEN » est utilisé ici pour effectuer une recherche. Cela nous permet d'utiliser des opérateurs booléens (tels que AND, OR, NOT), etc. pour des recherches plus flexibles et précises.

Avec l'exemple de code ci-dessus, nous pouvons facilement implémenter la fonction de recherche de plats basée sur MySQL pour offrir une meilleure expérience utilisateur pour le système de commande. Bien entendu, dans les applications réelles, les résultats de recherche peuvent également être triés, paginés et optimisés en fonction des besoins.

Pour résumer, MySQL, en tant que système de base de données mature, stable et puissant, peut fournir un bon support pour la fonction de recherche de plats du système de commande. J'espère que cet article vous aidera à comprendre comment utiliser MySQL pour implémenter la fonction de recherche de plats du système de commande.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn