MySQL select 文本列范围之间的行
MySQL select rows between a range on a text column
我有一个名为 basicinfo 的 table 和一个名为 iepNo 的列,它具有基于特定格式的值,例如
m-195001
m-195002
m-195003 and so on.
我想根据给定的iepNo 范围获取记录。例如我想在 m-233
到 m-334
之间获取 iepNo
截至目前,我正在使用此查询:
SELECT *
FROM basicinfo
WHERE iepNo BETWEEN "M-100" AND "M-200"
但它返回 2631 行,但实际上,我应该只得到 m-100
和 m-200
之间的 100 行。列 iepNo 的类型为 varchar(13)
.
请指导我如何解决这个问题。
您可以在比较之前提取 ID 值并转换为整数:
SELECT *
FROM basicinfo
WHERE CAST(SUBSTRING_INDEX(iepNo, '-', -1) AS UNSIGNED) BETWEEN 100 AND 200;
我有一个名为 basicinfo 的 table 和一个名为 iepNo 的列,它具有基于特定格式的值,例如
m-195001
m-195002
m-195003 and so on.
我想根据给定的iepNo 范围获取记录。例如我想在 m-233
到 m-334
截至目前,我正在使用此查询:
SELECT *
FROM basicinfo
WHERE iepNo BETWEEN "M-100" AND "M-200"
但它返回 2631 行,但实际上,我应该只得到 m-100
和 m-200
之间的 100 行。列 iepNo 的类型为 varchar(13)
.
请指导我如何解决这个问题。
您可以在比较之前提取 ID 值并转换为整数:
SELECT *
FROM basicinfo
WHERE CAST(SUBSTRING_INDEX(iepNo, '-', -1) AS UNSIGNED) BETWEEN 100 AND 200;