gpt4 book ai didi

mysql - 我无法在 mysql 中选择查询表,但只能使用某些名称

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:20 27 4
gpt4 key购买 nike

我在名为 19efdf22eeefaa6dc322be094bb2da475d4d457c8e0b5a906b375bc5f6c44ca4274d7374ea43435a 的数据库中有几个表。

当我运行代码时

SELECT * 
FROM table_name
ORDER BY name ASC

其中 table_name 是上述表之一,查询在第二个表上失败但在第一个表上失败,我不确定为什么。

这似乎是随机发生的,我发现如果我用“`”(严重标记)包围表名,那么它工作得很好,但我正在使用 web.py 作为我的 web 框架并且有一些有用的用于涉及插入和选择的简单查询的包装器。

我正在使用 Python 哈希函数生成这些字符串,但它们几乎完全相同(可以说不一样,但都很相似)。

最佳答案

我也不确定,但你应该像这样在每个标识符周围加上反引号:

SELECT * 
FROM `table_name`
ORDER BY `name` ASC

MySQL 以这种方式理解数据库名称、表名称和列名称周围的反引号。这是一个旧的 URL,你所做的确实是推荐的:http://mail.python.org/pipermail/db-sig/2007-August/005172.html

您可以在 \x60(反引号)前后插入表名。请原谅,我不熟悉 Python。

更新 2013-05-20 22:08 EDT

这是我的猜想:如果将前两个字符作为十六进制值,则小于 128,我认为 information_schema.tables 的字符集可能会干扰表名的解释。您将不得不尝试使用前两个字符小于或等于 7F 的表名。知道是否属于这种情况的唯一方法是添加 Python 代码,如果前两个字符(以十六进制值表示)大于 7F,则再次重试 SHA1 哈希。

试一试!!!

关于mysql - 我无法在 mysql 中选择查询表,但只能使用某些名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641792/

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