【问题标题】:SQL Where clause 'that begins with'?SQL Where子句'以'开头?
【发布时间】:2011-07-26 16:21:36
【问题描述】:

在我的 Rails 应用程序中,我有一个 SQL 查询,用于搜索查询的位置和喜欢的位置 (params[:q])。我怎样才能改变它,所以 query/:q 不能在行中的任何地方,但必须从它开始?代码如下:

 AccountNumber.where("account_number like?", "%#{params[:q]}%")

【问题讨论】:

    标签: sql ruby-on-rails where-clause where


    【解决方案1】:

    从字符串中删除前导 % 通配符。

    AccountNumber.where("account_number like?", "#{params[:q]}%")
    

    【讨论】:

      【解决方案2】:

      去掉前面的“%”

      喜欢这个

      AccountNumber.where("account_number like?", "#{params[:q]}%")
      

      http://en.wikipedia.org/wiki/Percent_sign

      【讨论】:

        【解决方案3】:

        通配符“%”可以在查询中的任何地方使用,表示可以在其中找到任意长度的字符串。删除第一个 '%' 以搜索仅以 #{params[:q]} 开头而不包含它的结果:

        AccountNumber.where("account_number like?", "#{params[:q]}%")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-30
          • 2023-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多