mysql - MySQL SELECT 行基于前缀
问题描述
我试图对包含前缀的表中的数据执行 SELECT,并且我有“关键字”。
因此,与前缀/关键字包含在行数据中的普通搜索不同,前缀/关键字更短(或包含在)可能的数据行中。
这是相反的。如果行中有前缀,我想根据(较长的)单词/阶段找到最佳匹配行。
CREATE TABLE table1 (id INT NOT NULL AUTO_INCREMENT, keyCode VARCHAR(45) NULL, Username VARCHAR(45) NULL, PRIMARY KEY (id));
INSERT INTO table1(keyCode,Username)VALUES('123','Peter')
INSERT INTO table1(keyCode,Username)VALUES('456','Paul')
INSERT INTO table1(keyCode,Username)VALUES('1234','John')
现在假设我得到的短语比数据中的前缀长。
像这样:
SELECT * FROM table1 WHERE keyCode LIKE '123456%';
我知道这行不通,但我想用用户“约翰”返回该行。
如何?(我可以使用存储过程)
解决方案
您可以LIKE
按相反的顺序表达您的表达:
SELECT *
FROM table1
WHERE '123456' LIKE CONCAT(keyCode, '%');
例如,这将与 进行比较,'123456'
在'1234%'
这种情况下应该是匹配的。
推荐阅读
- python - PYTHON - UNRAR:我如何建立一个线程来监控下载状态
- android - 如何使用扩展函数作为 Room 数据库的 TypeConverter 方法?
- sql - 更新 Switch 语句影响整个表
- scala - 如果前一个函数回答了某些条件,如何使用理解并跳过正在运行的函数?
- ios - UICollectionView 在重用后选择先前选择的单元格
- android - 对话框在android中随机变为透明
- javascript - 通过 JavaScript 在 Canvas 中,如何获取对象的坐标,然后将该对象移动到不同的坐标?
- dockerfile - 将主机上的命令输出到 Dockerfile 中的 ARG 中
- javascript - 使用带有 React 和 Django 的 webpack 的 URL 加载器时找不到图像文件
- c# - TWain dsm 32 位选择默认扫描仪