gpt4 book ai didi

php - 如何为 mysql in() 进行类型转换

转载 作者:行者123 更新时间:2023-11-29 19:11:29 26 4
gpt4 key购买 nike

我正在构建一个 php 脚本,该脚本创建一个查询字符串,例如,

$products = array(873, 874, 875);
$sql = 'select * from product_thumbnails where product in (' . implode($products, ', ') . ')';

它创建一个类似的查询

'select * from product_thumbnails where product in (873, 874, 875)'

产品的数据类型是int。 in() 函数的参数是否被视为字符串?如果是这样,那么 mysql 就会将整数与字符串进行比较,因此随着应用程序的增长可能会导致查询速度变慢。有没有办法对参数进行类型转换或告诉 mysql 将它们视为整数?或者 mysql 是否足够聪明,可以自己处理这个问题?

编辑

非常感谢 Jerodev 和 jilesh 的回答 - Mysql 会将这些视为整数。如果您想要一个字符串,只需在查询字符串中使用引号,例如

' in ("stringtype", "stringtype") '

最佳答案

在 MySQL 语法中...当需要数字时,您可以提供数字 123 字符串 "123"

当需要一个字符串时,您可以提供其中一个,但是当将 VARCHAR 与不带引号的数字 (123) 进行比较时,它会转到将 VARCHAR 转换为数字的额外工作,这通常会给您错误的答案:"abc" 被视为 0,或者至少一些令人困惑的事情:“123abc”被视为123

关于php - 如何为 mysql in() 进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43046590/

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