检查string1的任何部分是否与string2的任何部分匹配

时间:2016-12-29 22:09:55

标签: mysql database select mariadb

我有简单的搜索功能,使用

import tkinter as tk

# --- functions ---

def select_button():
    print('value:', v.get())  # selected value

# --- main ---

names = ['Button A', 'Button B', 'Button C']

root = tk.Tk()

v = tk.IntVar()  # variable for selected value

for i, name in enumerate(names, 2):
    btn = tk.Radiobutton(root, text=name, variable=v, value=i)  # assign variable and value

    btn['indicatoron'] = 0  # display button instead of radiobutton
    btn['selectcolor'] = 'green' # color after selection

    btn['command'] = select_button  # function without variables

    btn.grid(row=i, column=0, sticky='w', ipadx=5, ipady=5)

root.mainloop()

但是如果我使用很多关键词怎么办

“许多关键词”

我的数据包含

“一些关键数据”

即使一个词匹配(在这种情况下为“key”),我希望它们匹配。 这可以在一个MySQL查询中实现吗?

2 个答案:

答案 0 :(得分:0)

好的,这就是我处理它的方式。

main()

这为查询准备了搜索表,其中包含字符串中的每个单词,而不仅仅是字符串。

答案 1 :(得分:0)

除非你的表包含几行LIKE“%text%”应该避免,因为不能使用索引。

相反,您应该考虑在列数据上添加全文索引并执行全文搜索,例如

    QString filePath = QCoreApplication::applicationDirPath();
    QString dbPath = QDir(filePath).absoluteFilePath("../../../Database");

    m_db = QSqlDatabase::addDatabase("QSQLITE", "user_connection");
    m_db.setDatabaseName(dbPath + "/Sensor_Objects.db");

    qDebug() << filePath << " & " << dbPath;

    if (!m_db.open())
       qDebug() << "Database Error: " + m_db.lastError().text();
    else
    {
       qDebug() << "Database: connection ok";
        createDatabase("Sensor_Objects");
        m_db.close();
    }