gpt4 book ai didi

Mysql Select with LIKE 子句不工作汉字

转载 作者:IT王子 更新时间:2023-10-29 00:33:16 27 4
gpt4 key购买 nike

我将数据存储在单列中,其中有英文和中文。

数据由分隔符分隔,例如中文

<!--:zh-->日本<!--:-->

英语

<!--:en-->English Characters<!--:-->

我会根据用户选择的语言显示内容。

我做了这样的查询

SELECT * FROM table WHERE content LIKE '<!--:zh-->%<!--:-->' 

上面的查询有效但返回空结果集。

content 列的

Collat​​ionutf8_general_ci

我也试过像下面这样使用convert函数

SELECT * FROM table WHERE CONVERT(content USING utf8) 
LIKE CONVERT('<!--:zh-->%<!--:-->' USING utf8)

但这也行不通。

我也尝试运行查询 SET NAMES UTF8 但它仍然不起作用。

如果重要的话,我正在 PhpMyAdmin 中运行查询。


qTranslate 没有改变 WordPress 使用的数据库。翻译数据存储在原始字段中。因此,每个字段都包含该特殊字段的所有翻译,数据如下所示

<!--:en-->English Characters<!--:--><!--:zh-->日本<!--:-->

http://wpml.org/documentation/related-projects/qtranslate-importer/

最佳答案

测试表格数据的内容

<!--:zh-->日本<!--:--><!--:en-->English Characters<!--:-->
<!--:en-->English Characters<!--:--><!--:zh-->日本<!--:-->
<!--:zh-->日本<!--:-->
<!--:en-->English Characters<!--:-->

其次是

I have data stored in single column which are in English and Chinese

你的选择应该是这样的

SELECT * FROM tab
WHERE content LIKE '%<!--:zh-->%<!--:-->%'

SQL Fiddle DEMO (还有演示如何从内容中获取特殊语言部分)

SET @PRE = '<!--:zh-->', @SUF = '<!--:-->';

SELECT
content,
SUBSTR(
content,
LOCATE( @PRE, content ) + LENGTH( @PRE ),
LOCATE( @SUF, content, LOCATE( @PRE, content ) ) - LOCATE( @PRE, content ) - LENGTH( @PRE )
) langcontent
FROM tab
WHERE content LIKE CONCAT( '%', @PRE, '%', @SUF, '%' );

MySQL Documentation 中所述并以

为例
SELECT 'David!' LIKE '%D%v%';

关于Mysql Select with LIKE 子句不工作汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492411/

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