gpt4 book ai didi

MySQL选择其中varchar长度

转载 作者:可可西里 更新时间:2023-11-01 06:36:41 27 4
gpt4 key购买 nike

我正在尝试选择字段长度 = X 的所有字段

目标是查看一个字段是否有15个字符(VARCHAR)并设置type=Y

当我测试 select 时,我返回 0 行,这是不正确的。

select *
from payment_options
where char_length(cc_type) = 15

我尝试了 length、char_length 等,但没有任何效果。

谁能指导我正确的方向,好吗?

谢谢。

编辑:为了澄清。

我明白了 =( 我指定了错误的字段。

我想做的是 SET cc_type to Amex if char_length(cc_masked) = 15

UPDATE payment_options
SET cc_type = "Amex"
WHERE char_length(cc_masked) = 15;

最佳答案

您所拥有的应该有效。也许您需要详细说明“无用”:空结果集? sql错误?什么?您还应该指定架构和示例数据。

无论如何,我继续创建了一个 sql fiddle 来展示这样的东西是如何工作的:http://sqlfiddle.com/#!2/7242e/8

架构和样本数据

CREATE TABLE `payment_options` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`cc_type` VARCHAR(255),
`cc_name` VARCHAR(255)
);

INSERT INTO `payment_options` (`cc_type`,`cc_name`) VALUES
('fifteen chars01','alpha'),
('fifteen chars02','bravo'),
('not fifteen chars','charlie'),
('fifteen chars03','delta'),
('really not 15 chars','echo');

您现有的查询

SELECT *
FROM `payment_options`
WHERE CHAR_LENGTH(`cc_type`) = 15;

提供以下结果集:

|--------------------------------------|
| ID | CC_TYPE | CC_NAME |
| 1 | fifteen chars01 | alpha |
| 2 | fifteen chars02 | bravo |
| 4 | fifteen chars03 | delta |
|--------------------------------------|

如果您想在查询本身中运行 X/Y 逻辑,您可以使用 IF(IF() docsrelated SO answer):

SELECT  *,
IF(CHAR_LENGTH(`cc_type`)=15,'Y','X') as `cc_type_modified`
FROM `payment_options`;

产量:

|---------------------------------------------------------------|
| ID | CC_TYPE | CC_NAME | CC_TYPE_MODIFIED |
| 1 | fifteen chars01 | alpha | Y |
| 2 | fifteen chars02 | bravo | Y |
| 3 | not fifteen chars | charlie | X |
| 4 | fifteen chars03 | delta | Y |
| 5 | really not 15 chars | echo | X |
|---------------------------------------------------------------|

关于MySQL选择其中varchar长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704611/

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