我希望MySQL向我显示一个表,其中列的最后一个字符串具有特定的字母

SELECT * FROM myTable WHERE col LIKE '%n';

不显示任何内容(显示0行).

但这个管用

SELECT * FROM myTable WHERE col LIKE 'L%';

因此,当查找字符串的开头时,它会给我一个输出,但在查找字符串的结尾时,它不会.我也try 了其他列,但它不起作用.

为什么?

它正在寻找的单词是伦敦

表格是这样创建的(在网页上找到了这个示例):

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
+------------+---------------+--------------+

我建议不要在字符串中存储尾随空格字符.注意应用程序演示文稿中的换行符和回车,而不是数据中的换行符和回车.

Mysql相关问答推荐

可以在MySQL表名中使用表情包吗?

客户跨订阅的跨时间线计数

在MySQL和JavaFX中保存和检索图像文件

为什么MySQL不同版本的值会变化?

看不懂mysql自左连接查询

根据 JOIN 结果计算列中的值?

从 R 脚本创建新的 MYSQL 数据库

在表中找到最大值,然后分别显示SQL组和每个SQL组中的最大值计数

非常规字符的不正确字符串值错误

在 MySQL 中 Select COUNT of MAX

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

MySQL 工作台与 phpMyAdmin

Laravel $q->where() 日期之间

在 WHERE 子句中使用 CASE

如何在 Laravel 5.1 中获取数据库中的表列表

SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #3 不在 GROUP BY 子句中并且包含非聚合

在osx的命令行中使用Mysql-找不到命令?

MySQL 更新连接表

如何将本地托管的 MySQL 数据库与 docker 容器连接

获得上个月的第一天和最后一天的最佳方式?