你有什麼應該工作。也許你需要詳細說明「無效」:空結果集?sql錯誤?什麼?你還應該指定你的模式和樣本數據。工作: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() docs,related 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 |
|---------------------------------------------------------------|
'char_length'應該工作。嘗試運行'SELECT CHAR_LENGTH(cc_type)FROM payment_options;'以查看它可能返回的值。 – gandaliter 2014-09-06 20:55:24
請提供一些樣品數據和所需的結果。這將有助於明確目標。 – VMai 2014-09-06 21:13:02