php - MySQL varchar 在 PHP 中具有换行符和有效的 LIKE 子句

标签 php mysql line-breaks

我有一个 mysql/innoDB 表,其中街道名称和号码位于同一字段 (varchar(255)),并以换行符分隔。

有很多想法如何将其放在那里,但现在我需要在 PHP 的帮助下搜索匹配的街道+数字,但没有找到解决方案:

我想查找包含以下内容的“streetfield”字段:

street
number

我知道街道数字的确切值

我用普通的 SQL 尝试过,比如

SELECT * FROM table WHERE streetfield LIKE 'street number'

这不起作用。我找到了另一种方法,但这效果不佳

SELECT * FROM table WHERE streetfield LIKE 'street'+CODE(10)+'number'

我尝试了 CODE(13)CODE(10)+CODE(13),但没有成功。我不能使用“%”,因为我需要完美匹配。有什么想法吗?

最佳答案

SELECT * 
FROM table 
WHERE streetfield = 'street \n number';       --- the spaces are for clarity, 
                                                 --- should be removed

SELECT * 
FROM table 
WHERE streetfield = CONCAT('street', CHAR(10), 'number');  

用途:

CHAR(10)   for   \n
CHAR(13)   for   \r

关于php - MySQL varchar 在 PHP 中具有换行符和有效的 LIKE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138648/

相关文章:

php - 提供的参数无效 Codeigniter

php - 合并两个复杂查询

jquery - 使用 jQuery 显示文本文件时如何保留换行符

Debian 上的 PHP CLI 应用程序 : why can't I output a line break?

php - YouTube API v3 – 检查上传的视频是否已完成处理

php - 使用 PHP 发送 html 邮件

PHP MySQL 打印光标到网页?

css - 如何防止日语文本换行

PHP 数组重复数据计数

javascript - 禁止在 html 中查看过去的内容/历史记录