mysql - 混淆 mysql select 结果与 LIKE 和多个零 (%00%)

标签 mysql

我创建了一个搜索查询来在表中搜索多个字段中的字符串。它适用于每个字符串,除非该字符串仅包含一个或多个零,例如:%000% 返回包含 2 个或更少零的行。

搜索字段:

`par_partno` varchar(20) utf8_general_ci
`par_group_id` varchar(16) utf8_bin
`par_desc` text utf8_general_ci
`par_details` text utf8_general_ci

我已经尝试将 par_partno 转换为 char CAST(par_partno AS CHAR) 但结果是相同的。

查询:

select `par_id`, `pag_id`, `par_partno`, `par_group_id`,`par_cond`, `par_desc`,`par_price`,
`par_stock`, `par_feature`, `par_weight`, `par_details`, `par_related`, `par_meta`,
`par_picture`, `par_lastmod`
from `parts`
where concat(`par_partno`, `par_group_id`, `par_desc`, `par_details`) like "%000%"
order by `par_group_id` asc 

错误结果:

[
{"par_id":"145100","pag_id":"1","par_partno":"7101263500","par_group_id":"01-00-12","par_cond":"New","par_desc":"Pedal Assy W\/ Booster Mbc, Clutch Cylinder","par_price":"1450.00","par_stock":"1","par_feature":"0","par_weight":"0.1","par_details":"","par_related":null,"par_meta":null,"par_picture":"0","par_lastmod":"2019-01-04 18:14:12"}, 
{"par_id":"145106","pag_id":"2","par_partno":"7121051100","par_group_id":"01-01-102","par_cond":"New","par_desc":"Seal Intake Valve","par_price":"5.95","par_stock":"1","par_feature":"0","par_weight":"0.1","par_details":"","par_related":"[\"7121040061\"]","par_meta":null,"par_picture":"0","par_lastmod":"2019-01-04 18:14:12"}, 
{"par_id":"145169","pag_id":"2","par_partno":"7122015100","par_group_id":"01-01-91","par_cond":"New","par_desc":"Engine Gasket Set","par_price":"199.00","par_stock":"1","par_feature":"0","par_weight":"6.4","par_details":"","par_related":null,"par_meta":null,"par_picture":"0","par_lastmod":"2019-01-04 18:14:12"}
]

最佳答案

我可能会误解你的问题,但检查的字符串不是例如的串联

par_partno":"7101263500","par_group_id":"01-00-12"

所以

710126350001-00-12

其中包含“000”子字符串。

关于mysql - 混淆 mysql select 结果与 LIKE 和多个零 (%00%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124307/

相关文章:

mysql - 在该列上排序后重新编号(将列设置为排名)

mysql - 无法在Qt中查询sqlite db,但可以查询MySQL。

mysql - 如何在表上形成 mysql 查询以按名为 'type' 的列和另一列的计数进行分组

Mysql 服务器已消失 - 在 mysqldump 期间

mysql - 选择多个表 MySQL

mysql 在 BASH 脚本中应该返回 1 时返回 0

mysql - 在 SELECT 子句中使用列别名的 INSERT + SELECT + ON DUPLICATE KEY

mysql - ado.net实体数据模型和mysql - UTF8问题

php - JSON数组和PHP问题

php - 制作事件日志的最有效方法