gpt4 book ai didi

mysql比较和编码

转载 作者:行者123 更新时间:2023-11-29 12:00:18 24 4
gpt4 key购买 nike

我在这里遇到了 MySQL 的问题,实际上很奇怪......这真是一个令人头疼的事情,我一直在尝试很多东西,坚持一些 COLLATE、CAST、CONVERT,......但什么也没有,也许我'我没有以正确的方式做这件事,但我真的迷失了这里。

如果有专业人士提供建议;)这是我的问题:

SELECT col FROM tabl LIMIT 0,1 

返回:helloworld01

CASE WHEN((SELECT col FROM tabl LIMIT 0,1) = 'helloworld_01') THEN 'ok' ELSE 'ko' END

返回:确定

CASE WHEN(SUBSTR('helloworld_01',1,1) = 'h') THEN 'ok' ELSE 'ko' END

返回:确定

但这就是奇怪的地方

 CASE WHEN(SUBSTR((SELECT col FROM tabl LIMIT 0,1),1,1) = 'h') 
THEN 'ok' ELSE 'ko' END

返回:ko

手动检查每个字母后,我发现结果很奇怪......数字和字母的顺序正确,但每个字符都不是应该的......我得到类似 lsuejwodhb_65 的东西 ....但不要在每次请求时更改...并且它们也不匹配其 CHAR 代码....

最佳答案

这是因为在下面的查询中,并不总是保证输出helloworld_01,除非你只有一行,这是非常罕见的;因为您没有使用任何 order by 子句。所以返回的数据可能不同,所以你的条件根本不匹配。确保使用 order by 子句。同样,如果没有 order by using LIMIT 子句就没有意义。

SELECT col FROM tabl order by col LIMIT 0,1

尝试像下面这样的奇怪查询,看看它是否与这次匹配

CASE WHEN(SUBSTR((SELECT col FROM tabl order by col LIMIT 0,1),1,1) = 'h') 
THEN 'ok' ELSE 'ko' END

关于mysql比较和编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32492281/

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