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

发布于 2024-12-01 04:25:47 字数 567 浏览 1 评论 0原文

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

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

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

street
number

我知道 streetnumber 的确切值

我用普通的 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) ,但没有成功。我不能使用“%”,因为我需要完美匹配。有什么想法吗?

I have a mysql/innoDB-table where streetnames and numbers are in the same field (varchar(255)) separated by a line break.

There are many ideas out there how to put it there, but now I need to search for matching streets+numbers with the help of PHP and don't find a solution:

I want to find the field "streetfield" with the following content:

street
number

and I know the exact values for street and number

I tried it with plain SQL like

SELECT * FROM table WHERE streetfield LIKE 'street number'

This didn't work. I found another approach, but this didn't work es well

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

I tried CODE(13) and CODE(10)+CODE(13), but without success. I can't use "%" because I need perfect matches. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

楠木可依 2024-12-08 04:25:48

尝试:

SELECT * FROM table WHERE streetfield LIKE 'street\nnumber';

Try:

SELECT * FROM table WHERE streetfield LIKE 'street\nnumber';
老子叫无熙 2024-12-08 04:25:47
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
SELECT * 
FROM table 
WHERE streetfield = 'street \n number';       --- the spaces are for clarity, 
                                                 --- should be removed

or

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

Use:

CHAR(10)   for   \n
CHAR(13)   for   \r
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文