[英]Searching for ampersands in a MySQL text field
I have this query: 我有这个查询:
SELECT 'events' AS tbl,events.*, users.name, users.lastname,
(SELECT COUNT(*) FROM events_participants WHERE
events_participants.eventid=events.id) AS participants
FROM
(events INNER JOIN users ON users.id=events.organizer)
WHERE events.isConfirmed<=1
AND events.category='art&culture'
AND events.city='Roma(Rm)'AND events.datetime >= '2011/02/22 22:30'
AND events.datetime<='2011/06/22 23:00' ORDER BY events.datetime DESC
The ampersand: &
in art&culture
causes the query to not return rows. “& &
在art&culture
导致查询不返回行。
In MySQL you can search for Ampersands in a text field like this: 在MySQL中,您可以在这样的文本字段中搜索“&”号:
mysql> create table yar (id INT, mytext TEXT);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into yar values(1, 'art&culture');
Query OK, 1 row affected (0.00 sec)
mysql> select * from yar;
+------+-------------+
| id | mytext |
+------+-------------+
| 1 | art&culture |
+------+-------------+
1 row in set (0.00 sec)
mysql> select * from yar where mytext = 'art&culture';
+------+-------------+
| id | mytext |
+------+-------------+
| 1 | art&culture |
+------+-------------+
1 row in set (0.00 sec)
如果这是完整的查询,则看起来“ 2011/06/22 23:00”和ORDER BY之间应该有一个空格
Possible issues: 可能的问题:
datetime
is a reserved word. datetime
是保留字。 Try replacing events.datetime
with events.`datetime`
everywhere it appears. 尝试在出现的任何地方都用events.`datetime`
替换events.datetime
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.