实现这个功能的一种方法是使用MySQL的FULLTEXT索引来搜索最佳匹配。FULLTEXT索引允许您在文本列(如VARCHAR或TEXT)上执行高效的全文搜索。虽然FULLTEXT索引常用于全文搜索,但它们也可以用于LIKE查询。以下是一个基本的查询示例,用于在MySQL中按列的最佳匹配执行LIKE查询:
SELECT * FROM table_name WHERE MATCH(column_name) AGAINST('search_term' IN BOOLEAN MODE);
在这个例子中,table_name是要查询的表名,column_name是要查询的列名,search_term是要搜索的术语或短语。请注意,'BOOLEAN MODE”参数指定MySQL在匹配时使用布尔运算符。更多关于基于FULLTEXT索引的LIKE查询的信息,请参阅MySQL文档。
示例表格:
CREATE TABLE products ( id INT PRIMARY KEY, name VARCHAR(255), description TEXT, sku VARCHAR(50), price DECIMAL(10,2) );
示例数据:
INSERT INTO products (id, name, description, sku, price) VALUES (1, 'iPhone XR', 'The latest iPhone model', 'IPXR', 899.00), (2, 'Samsung Galaxy S9', 'The latest Samsung smartphone', 'SGS9', 799.00), (3, 'Google Pixel 3', 'Great smartphone from Google', 'GP3', 699.99);
示例查询:
SELECT * FROM products WHERE MATCH(name, description) AGAINST('latest smartphone' IN BOOLEAN MODE);
这将返回id为1和2的产品,因为它们的名称和描述包含'最新智能手机”这个短语。
下一篇:按列定向的 mat-table