gpt4 book ai didi

sql - 查询中的位置和命名参数是什么意思?

转载 作者:行者123 更新时间:2023-12-04 23:20:26 24 4
gpt4 key购买 nike

这里我们得到了一个位置参数:

SELECT 
u
FROM ForumUser u
WHERE u.id = ?1

这里是一个命名参数:
SELECT 
u
FROM ForumUser u
WHERE u.username = :name

这是 DQL(教义查询语言),但我认为这个概念是相同的。

有人可以解释一下这些是什么意思吗?

最佳答案

位置参数由其在子句中的索引设置。

命名参数由其名称设置。

当您设置值时,您可能会将值放在一个数组中,在这种情况下,位置形式可能更有用。或者,您可以按名称将它们放在关联数组中,在这种情况下,命名形式更有用。

更新 - 虽然文档提到了位置参数,例如 ?1 ,示例仅使用 ? .

此位置参数示例按提供的数组中的位置将值映射到查询中的位置占位符中。

$q = Doctrine_Query::create()
->from('User u')
->where('u.username = ? and u.age = ?', array('Arnold', 50));

$users = $q->fetchArray();

但是,此示例按名称将关联数组中的值映射到它们的命名占位符。看看他们如何不需要 tgo 井井有条。
$q = Doctrine_Query::create()
->from('User u')
->where('u.username = :username and u.age = :age',
array(':age' => 50, ':username' => 'Arnold'));

(不得不承认我不是 PHP 人 - 以上基于示例 here 。)

关于sql - 查询中的位置和命名参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com