我希望 mysql 向我显示一个表,其中列的最后一个字符串具有特定字母
SELECT * FROM myTable WHERE col LIKE '%n';
没有显示任何内容(显示 0 行)。
但是这个有效
SELECT * FROM myTable WHERE col LIKE 'L%';
因此,当查找字符串的开头时,它会给我一个输出,但当查找字符串的结尾时,它不会。我也尝试过其他列,但没有成功。
为什么?
它正在寻找的词是伦敦
表格是这样创建的(在网页上找到了这个示例):
CREATE TABLE IF NOT EXISTS `company` (
`COMPANY_ID` varchar(6) NOT NULL DEFAULT '',
`COMPANY_NAME` varchar(25) DEFAULT NULL,
`COMPANY_CITY` varchar(25) DEFAULT NULL,
PRIMARY KEY (`COMPANY_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `company`
--
INSERT INTO `company` (`COMPANY_ID`, `COMPANY_NAME`, `COMPANY_CITY`) VALUES
('18', 'Order All', 'Boston\r'),
('15', 'Jack Hill Ltd', 'London\r'),
('16', 'Akas Foods', 'Delhi\r'),
('17', 'Foodies.', 'London\r'),
('19', 'sip-n-Bite.', 'New York\r');
最佳答案
您的示例数据显示回车符 (\r
) 作为字符串中的最后一个字符。如果我们从搜索中删除它,剩下的字符串就会匹配。
mysql> SELECT * FROM company where TRIM('\r' from company_city) LIKE '%n';
+------------+---------------+--------------+
| COMPANY_ID | COMPANY_NAME | COMPANY_CITY |
+------------+---------------+--------------+
| | Order All | Boston
| | Jack Hill Ltd | London
| | Foodies. | London
+------------+---------------+--------------+
我建议不要在字符串中存储尾随空白字符。请注意应用程序演示文稿中的换行符和回车符,而不是数据中的换行符和回车符。
关于最后一个字母为 '%n' 的 mysql SELECT 字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74696029/