如题,结果如下:
程序查询的输出:
DEBUG queryCompany:145 - ==> Preparing: SELECT b.id, b.name, b.average, COUNT(*) as times FROM (SELECT id, name, average from baseinfo WHERE id = ? or name LIKE ? ORDER BY average DESC LIMIT ?, ?) as b LEFT JOIN detailinfo AS d ON (b.id = d.id) GROUP BY b.id
DEBUG queryCompany:145 - ==> Parameters: 江(String), %江%(String), 0(Integer), 6(Integer)
DEBUG queryCompany:145 - <== Total: 0
然后我把这个sql
语句直接放到数据库里查询,结果如下:
MariaDB [stock]> SELECT b.id, b.name, b.average, COUNT(*) as times FROM
-> (SELECT id, name, average
-> from baseinfo WHERE id = "江" or name LIKE "%江%"
-> ORDER BY average DESC LIMIT 0, 6) as b
-> LEFT JOIN detailinfo AS d ON (b.id = d.id)
-> GROUP BY b.id;
+--------+--------------+------------+-------+
| id | name | average | times |
+--------+--------------+------------+-------+
| 600418 | 江淮汽车 | 0.99999999 | 8 |
| 601313 | 江南嘉捷 | 0.16716038 | 10 |
+--------+--------------+------------+-------+
2 rows in set (0.00 sec)
之前都还能正常查询的,求问这是怎么回事
数据库挂掉了,还没恢复,所以没法测试是不是各位提的问题。。恢复后我会第一时间测试的
伊谢尔伦2017-04-17 18:03:23
Mybatis configuration problem, I guess it may be a problem with # and $, I don’t know if your configuration is written like this
SELECT b.id, b.name, b.average, COUNT(*) as times FROM (SELECT id, name, average from baseinfo WHERE id = #{id} or name LIKE #{name} ORDER BY average DESC LIMIT #{}, #{}) as b LEFT JOIN detailinfo AS d ON (b.id = d.id) GROUP BY b.id
迷茫2017-04-17 18:03:23
Add ?autoReconnect=true&useUnicode=true&characterEncoding=utf8 after the connection database address
PHP中文网2017-04-17 18:03:23
It should be a configuration problem of mybatis. It almost appears near like. You can do it like this: like CONCAT('%',#{XXX},'%')
PHPz2017-04-17 18:03:23
http://blog.csdn.net/michaelj...
Refer to this link and it may bring you inspiration