【问题标题】:Looking for SQL query LIKE ('1077%') operator ON DATA寻找 SQL 查询 LIKE ('1077%') 运算符 ON DATA
【发布时间】:2014-12-19 06:13:44
【问题描述】:

在 DATA (ONE ROW) 之后查找 LIKE ('1077%') 运算符 ON 的 sql 查询。

   Postalcode             Range_From        Range_To      // (columns name)
    Dubai                  10777            10985         // (data,table row)

结果应该是(前 3 行)

01 - 迪拜 10777
02 - 迪拜 10778
03 - 迪拜 10779
04 - 迪拜 10780 05 - 迪拜 10781 06 - 迪拜 10782 .........

【问题讨论】:

  • 您是否尝试过任何查询?

标签: mysql sql database sql-like


【解决方案1】:

很简单。

select * from tableName where Range_From LIKE '1077%'

【讨论】:

    【解决方案2】:
    select * from tableName where Range_from between 10770 and 10779
    

    【讨论】:

      【解决方案3】:

      所以你不想检索数据而是生成它?因为你说你的表只有那一行。 所以你可以做的是,创建一个以 10777 开头和最大值为 10779 的序列 那么你可以使用序列来显示结果

      【讨论】:

        【解决方案4】:

        如果 range-from 不是字符串类型

        select * from tableName where CAST(Range_From AS VARCHAR(10)) LIKE '1077%'
        

        那就试试这个

        Declare @fromRange int
        Set @fromRange=10770
        Declare @toRange int
        Set @toRange=10780
                ;WITH CTE_Numbers AS (
                SELECT n = @fromRange
                UNION ALL
                 SELECT n + 1 FROM CTE_Numbers WHERE n < @toRange
            )
            SELECT * 
            FROM CTE_Numbers num where CAST(n AS VARCHAR(9)) LIKE '1077%'
        

        MySQL:

        SET @starts = 10777-1;
        
        SELECT  @n := @n +1 AS vals
        FROM mysql.help_relation , (SELECT @n:=@starts) tab where @n like '1077%' LIMIT 10 ;
        

        【讨论】:

        • Vivekh - 在我的例子中。表中只有记录,我想根据类似运算符('1077%')从这条记录中生成 3 条记录(参见我提到的示例输出)。您的查询不
        • 这对 MySQL 无效
        • Vivekh - 我正在使用 MySQL。所以我不能使用“公用表表达式”:(。我也用 MySQL 标记了它
        • 是的,有 mysql,但你的问题是“寻找 SQL 查询”
        猜你喜欢
        • 1970-01-01
        • 2022-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        相关资源
        最近更新 更多