一尘不染

MySQL-搜索列值的格式化组合

sql

我有一个数据库,其中一个表具有两列:grouparticleint但这两种格式都必须先格式化,然后才能显示给用户:

  • group必要时总是显示为2个位数,有前导零。
  • article必要时总是显示为4位数字,带前导零。
  • grouparticle与一个破折号隔开-

示例 :带有group = 1和的项目article = 23将以形式显示给用户01-0023

继续前进
。我有一个PHP脚本,用户可以在其中搜索文章。用户当然会以格式化的方式撰写文章。我今天使用的脚本使用正则表达式将搜索文章与自由文本分开,然后在搜索数据库之前将groupandarticle相互隔离。

我的问题是,是否可以在查询中传递格式化的字符串(例如01-0023),如果可以,我将如何处理SQL?


阅读 134

收藏
2021-05-16

共1个答案

一尘不染

如果要与显示给用户的值进行比较,可以执行以下操作:

where `group` = substring_index(@Group_Article, '-', 1) + 0 AND
      `article` = substring_index(@Group_Article, '-', -1) + 0
2021-05-16