Rumah  >  Artikel  >  pangkalan data  >  MySQL melaksanakan fungsi carian hidangan sistem pesanan

MySQL melaksanakan fungsi carian hidangan sistem pesanan

PHPz
PHPzasal
2023-11-01 14:19:47972semak imbas

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

MySQL melaksanakan fungsi carian hidangan sistem pesanan, contoh kod khusus diperlukan

Tajuk: MySQL melaksanakan fungsi carian hidangan sistem pesanan

Dalam sistem pesanan, fungsi carian hidangan adalah salah satu fungsi penting dan biasa satu. Dengan bantuan fungsi berkuasa pangkalan data MySQL, kami boleh melaksanakan fungsi carian hidangan dengan mudah dan menyediakan pengguna pengalaman pesanan yang lebih pantas dan mudah.

Di bawah, saya akan menggunakan contoh mudah untuk memperkenalkan cara menggunakan MySQL untuk melaksanakan fungsi carian hidangan sistem pesanan. Katakan kita mempunyai jadual menu bernama "menu", yang mengandungi medan: ID hidangan (menu_id), nama hidangan (menu_name), harga hidangan (menu_price), kategori hidangan (menu_category), perihalan hidangan (menu_description), gambar hidangan ( menu_image) dll.

Pertama, kita perlu mencipta indeks teks penuh. Indeks teks penuh ialah indeks khas yang disediakan oleh MySQL untuk mencari dan memadankan data teks. Kita boleh menggunakan pernyataan berikut untuk mencipta indeks teks penuh pada medan nama hidangan (nama_menu) dan perihalan hidangan (penerangan_menu) pada jadual menu:

ALTER TABLE menu ADD FULLTEXT(menu_name, menu_description);

Seterusnya, kita boleh melaksanakan fungsi carian hidangan melalui contoh kod berikut:

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()

Contoh kod di atas, kami mula-mula membuat sambungan ke pangkalan data MySQL dan memulakan kursor. Kemudian, kata kunci carian diperoleh melalui input pengguna, dan kata kunci dihantar sebagai parameter kepada pernyataan SQL untuk mencari menggunakan indeks teks penuh. Akhir sekali, dapatkan hasil carian dan keluarkannya.

Perlu diingatkan bahawa "IN BOOLEAN MODE" digunakan di sini untuk mencari. Ini membolehkan kami menggunakan operator Boolean (seperti AND, OR, NOT), dsb. untuk carian yang lebih fleksibel dan tepat.

Dengan contoh kod di atas, kami boleh melaksanakan fungsi carian hidangan berasaskan MySQL dengan mudah untuk memberikan pengalaman pengguna yang lebih baik untuk sistem pesanan. Sudah tentu, dalam aplikasi sebenar, hasil carian juga boleh diisih, dinomborkan, dan seterusnya dioptimumkan mengikut keperluan.

Ringkasnya, MySQL, sebagai sistem pangkalan data yang matang, stabil dan berkuasa, boleh memberikan sokongan yang baik untuk fungsi carian hidangan sistem pesanan. Saya harap artikel ini akan membantu anda memahami cara menggunakan MySQL untuk melaksanakan fungsi carian hidangan sistem pesanan.

Atas ialah kandungan terperinci MySQL melaksanakan fungsi carian hidangan sistem pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn