如何解决SQL:WHERE 子句中的变量字符串输入?
我试图通过将 SQL 命令放入函数中并让 WHERE 子句成为可由用户输入的字符串变量来概括 SQL 命令。
本文来自 Kaggle SQL 教程,基于 stackoverflow bigquery 公共数据集。
'%{topic}%'
他们有 .to_dataframe()
据称允许“主题”是任何字符串,在这种情况下,如上面声明的“bigquery”。
但是,这在对查询结果执行 bigquery_experts_query = """
SELECT a.owner_user_id AS user_id,COUNT(1) AS number_of_answers
FROM `bigquery-public-data.stackoverflow.posts_questions` AS q
INNER JOIN `bigquery-public-data.stackoverflow.posts_answers` AS a
ON q.id = a.parent_id
WHERE q.tags LIKE '%bigquery%'
GROUP BY user_id
ORDER BY number_of_answers DESC
"""
时返回一个空的 Pandas 数据框,而
<li>
<a href="#icdSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
<i class="fa fa-credit-card"></i>
ICD
</a>
<ul class="collapse list-unstyled" id="icdSubmenu">
<li>
<a href="#setup1" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"><i class="fa fa-server" aria-hidden="true"></i> Maintenance</a>
<ul class="collapse list-unstyled" id="setup1">
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> IC Profile</a>
</li>
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> Product Master</a>
</li>
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> Supplier Master</a>
</li>
</ul>
</li>
</ul>
<ul class="collapse list-unstyled" id="icdSubmenu">
<li>
<a href="#setup2" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"><i class="fa fa-server" aria-hidden="true"></i> Maintenance1</a>
<ul class="collapse list-unstyled" id="setup2">
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> IC Profile1</a>
</li>
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> Product Master1</a>
</li>
<li>
<a href="#"><i class="fa fa-arrows-alt" aria-hidden="true"></i> Supplier Master1</a>
</li>
</ul>
</li>
</ul>
</li>
按照预期的方式工作。
我认为 Kaggle 使用 MySQL,但我不确定。如何让变量字符串在此上下文中工作,以便我可以将此 SQL 命令概括为函数?
解决方法
使用存储过程构造(通过CONCAT
)然后PREPARE
和EXECUTE
它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。