- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有如下表格:
wordId | word
---------------------------------
1 | axxe
2 | test word
3 | another test word
我正在尝试运行下面的查询以查找以字母“ax”开头的记录。
SELECT * FROM `words` WHERE word LIKE 'ax%'
MySQL 找不到任何东西。
但是,如果我尝试下面的查询之一,我可以在结果中看到正确的记录(单词“axxe”)。
SELECT * FROM `words` WHERE word='axxe'
SELECT * FROM `words` WHERE word LIKE '%ax%'
SELECT * FROM `words` WHERE word LIKE 'a%'
为什么 MySQL 不能为第一个查询找到正确的值?我尝试在命令行和 phpMyAdmin 上运行它,但结果是一样的。
这是 SHOW CREATE TABLE 输出:
CREATE TABLE `words` (
`wordId` int(11) NOT NULL auto_increment,
`word` text collate utf8_turkish_ci NOT NULL
PRIMARY KEY (`word`)
) ENGINE=MyISAM AUTO_INCREMENT=2853 DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci
最佳答案
Update your MySQL version.
我在这里模拟了你的问题:
创建表:
CREATE TABLE `turky` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`word` text COLLATE utf8_turkish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci
插入数据:
INSERT INTO `turky` (`id`, `word`) VALUES
(1, 'axxe'),
(2, 'test word'),
(3, 'axxxxxe'),
(4, 'another test word');
运行测试查询(有效):
SELECT * FROM `turky` WHERE `word`='axxe'
结果:
1, 'axxe',
运行测试查询 2(有效):
SELECT * FROM `turky` WHERE word LIKE '%ax%'
结果:
1, 'axxe',
3, 'axxxxxe',
运行测试查询 3(有效):
SELECT * FROM `turky` WHERE word LIKE 'a%'
结果:
1, 'axxe',
3, 'axxxxxe',
4, 'another test word';
运行测试查询 4(最初不起作用):
SELECT * FROM `turky` WHERE `word` LIKE 'ax%'
结果:
1, 'axxe',
3, 'axxxxxe',
这适用于 MySQL,使用 PHPMyAdmin。
版本:
MySQL: 5.6.35
PHPMyAdmin:4.6.6
当前的土耳其语字母表不包含字母“x”,因此这一事实可能[可能不会] 对 SQL 排序过程造成一些模糊的干扰(因为缺少语言指导时寻找这个角色)。
网络搜索 MySQL 中的土耳其语错误,虽然有六个,但似乎没有一个是针对您的特定实例的。
但是,根据我自己的测试(以上),使用您提供给我们的表和 SQL 详细信息,我可以看到的唯一选择是您使用的是旧版本的 MySQL,其中包含一些土耳其语错误。
(或者至少比我的更新)
然后这个问题似乎特定于您的设置和数据,所以我非常怀疑我们能否找到并重现这个问题:-(
更多诊断内容:
正如 Jacob H 评论的那样,看看这个问题在转换为二进制后是否仍然出现:
SELECT * FROM `turky` WHERE BINARY `word` LIKE CONCAT(BINARY 'ax','%');
结果:
1, 'axxe',
3, 'axxxxxe',
关于mysql - utf8_turkish_ci 归类上的 MySql LIKE 运算符有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43877437/
我正在用 Python 编写一个 ETL 脚本,用于获取 CSV 文件中的数据、验证和清理数据以及根据某些规则对每一行进行分类或分类,最后将其加载到 postgresql 数据库中。 数据看起来像这样
我在做一个项目,想实现一个类似于 wordpress posts 表的 posts 表来存储页面内容。 所以我基本上复制了 wp_posts 表,它是 longtext 但是我注意到在整理下它有 ut
在使用 MySQL 一段时间后,我第一次尝试使用 PostgreSQL 数据库。我的环境是与 cPanel 和 phpPgAdmin 共享主机。令我困惑的一件事是数据库整理。我的主机的 cPanel
在一些指南的帮助下,我成功地使用 gcc 编译了 sqlite3 的 ICU 扩展并获得了 libSqliteIcu.so,没有显示任何错误。然后我将这个 lib 复制到/usr/lib 文件夹。之后
我搜索了一个 JQuery 插件,但没有成功,该插件能够根据其内容过滤 HTML 列表(li、div 或其他列表)。我发现了很多,但似乎没有一个支持 MySQL 中所谓的排序规则(当然在其他地方也是如
我正在尝试将我的一个数据库表从 utf8_general_ci 切换到 utf8mb4。 ALTER TABLE d4b80le1jha CONVERT TO CHARACTER SET utf8mb
我是一名优秀的程序员,十分优秀!