MySQL – Perl:如何在选择查询中使用IN数组? (在哪里(@array))
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL – Perl:如何在选择查询中使用IN数组? (在哪里(@array)),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1409字,纯文字阅读大概需要3分钟。
内容图文
![MySQL – Perl:如何在选择查询中使用IN数组? (在哪里(@array))](/upload/InfoBanner/zyjiaocheng/899/906b36ba00f34fb6b82873d730db2f28.jpg)
这是我在这里解决的问题的补充:
how to get array of zip codes within x miles in perl
好的,我有阵列@zips.现在我试图在这样的查询中使用它:
SELECT `club_name`,`city` FROM `table` WHERE `public_gig` = 'y' AND `zip` IN (@zips)
#I also tried syntax "IN ("@zips"), IN @zips and IN ('@zips')"
但是,我无法让它发挥作用. (我正在使用占位符,例如您在上面的链接中看到的.)
我能够让这个工作:
$fzip=shift(@Zips);
$lzip=pop(@Zips);
SELECT `club_name`,`city` FROM `table` WHERE `public_gig` = 'y' AND `zip` BETWEEN $fzip AND $lzip
ZIP | public_gig | start_time | fin_time | city | club_name | and so on
33416 | y | 9pm | 2am | clearwater | beach bar | yada
但是,由于显而易见的原因和一些准确性的相似性,这并不是我想要的.只是想看看我是否可以让自己有所作为.
为什么我不能使用IN获取查询以使用数组中的拉链?没有返回任何内容,也没有错误.
在这个查询中实际上有很多,但是,我把它全部留在这里以保持简短.
我试图自己解决这个问题.显然,我当天的学习能力接近顶峰.
谢谢你的帮助.
解决方法:
如果您的任何值包含单引号,则此处发布的所有示例都会搞砸,请勿使用它们.
相反(假设$dbh是mysql连接的数据库句柄):
my $zip_string = join q{,}, map $dbh->quote($_), @zips;
并插入.
或者,对于一些不错的东西,但不像DBIx :: Perlish:SQL::Abstract那样破解一半.
my $sqla = SQL::Abstract->new;
my ($sql, @bind) = $sqla->select(
'table',
['club_name', 'city'],
{
public_gig => y',
zip => { -in => \@zips },
}
);
$dbh->prepare($sql);
$dbh->execute(@bind);
# fetchrow etc.
内容总结
以上是互联网集市为您收集整理的MySQL – Perl:如何在选择查询中使用IN数组? (在哪里(@array))全部内容,希望文章能够帮你解决MySQL – Perl:如何在选择查询中使用IN数组? (在哪里(@array))所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。