首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中阻止成功选择的数字字符

问在MySQL中阻止成功选择的数字字符
EN

Stack Overflow用户
提问于 2016-07-14 19:08:05
回答 2查看 34关注 0票数 0

我正在从MySQL数据库中选择用户的详细信息,虽然大多数用户名都匹配成功,但那些包含数字的用户名却不匹配。

在我的数据库表中,有一些记录,其中user_name列中有'examplename‘和'examplename1’。它们被存储为VARCHAR,排序规则utf8_general_ci。

这将返回'details':

代码语言:javascript
复制
SELECT details FROM username_table WHERE user_name = 'examplename'

然而,这不是:

代码语言:javascript
复制
SELECT details FROM username_table WHERE user_name = 'examplename1'

为什么数字字符会在VARCHAR字段中引起问题?(我也尝试过作为文本,也失败了。)

编辑: OK,我的错误。这些是简化的示例;我在实际语句中使用了JOIN子句,巧合的是,在表中的28个用户中,我在用户名中仅有的两个用户上犯了join错误。抱歉的。

EN

回答 2

Stack Overflow用户

发布于 2016-07-14 19:24:48

我知道这听起来很愚蠢,但是您是否尝试过提取查询,以便您的搜索词是它自己的变量?

如下所示:

代码语言:javascript
复制
$var_name = "examplename1";
$SQL = "SELECT details FROM username_table WHERE user_name = $var_name";
....

当我的查询字符串中有数字时,这通常对我有效。

票数 0
EN

Stack Overflow用户

发布于 2016-07-14 19:29:31

为什么数字字符会在VARCHAR字段中引起问题?

MySQL可以轻松地搜索包含数字字符的VARCHAR字段。最可能的解释是在username_table中没有user_name设置为'examplename1‘的记录

试试这个:

代码语言:javascript
复制
SELECT details FROM username_table WHERE user_name LIKE 'examplename%'

它将显示user_name以examplename开头的所有记录

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38372587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档