微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL搜索配置

如何解决SQL搜索配置

| 我不太擅长sql,并且有一个为网站创建的简单邮政编码查找器。 sql如下:
$query = \"select * from zipcodes2 where ZipCode like \\\"%$trimmed%\\\" 
* \\\“%$ trimmed%*当然是用户输入的实际邮政编码。它很好用,但是现在我想通过允许用户搜索城市或州而不仅仅是邮政编码来使它更加先进。我已经有了创建的列分别命名为\“ City \”和\“ State \”。我应该在sql行中确切输入什么?我是否需要更改代码的其他任何部分,特别是\\\“%$ trimmed %\\部分?     

解决方法

        这不是一个好方法,但是您可以通过以下方法接近您想要的:
$query = \"select * from zipcodes2 where ZipCode like \'%$trimmed%\' or (CONCAT(City,\',State) = \'$trimmed\')\"
但是您必须确保用户的响应没有空格,所以它的显示为
Chicago,IL
,而不是
Chicago,IL
Chicago,IL
。 您可以通过在查询之前添加以下内容来实现:
$trimmed = preg_replace( \'/\\s+/\',\' \',$trimmed );
    ,        您可以尝试这样的事情:
    select * 
    from zipcodes2 
    where 
    (
       ZipCode like \'%$trimmed%\'
       OR City like \'%City%\'
       OR State like \'%State%\'
    )
    ,        您应该能够通过将SQL查询修改为以下内容来完成: SELECT * FROM zipcodes2,其中ZipCode喜欢\\\“%$ trimmed%\\\”或(状态= \\\“ $ state_vairable \\\” AND City = \\\“ $ city_variable \\\”) 当然,这取决于您的最终目标。如果您要在明确的城市/州组合上进行匹配,则上述方法适用。 如果希望人们能够找到美国所有称为“ townsville”的地方的邮政编码,请删除括号并将“ AND”更改为“ OR”。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。