【发布时间】:2015-06-05 10:09:20
【问题描述】:
我有 MariaDB 5.5.x 引擎的数据库。在数据库上,我有表“项目”:
Table "items"
------------
ID |name | location | ... |
--------------------------
1 |some name1| 3;56;23;15;4; |
-----------------------
2 |some name2| 4;8;90; |
-----------------------
3 |some name3| 6;27;18;87;|
当我知道 location_ID fx 时,我正在寻找获取 ID 的方法。 “90”。所有位置都在数据库中,用分号 (";") 分隔。我在 Zend 上使用过并且效果很好:
where("location REGEXP '(^|[[.semicolon.]])" . $id . "([[.semicolon.]]|$)'");
我使用 MeekroDB 类在 Slim 框架上编程。我当前的 PHP 代码:
$DB = new DB(); //MeekroDB PHP Class
$data = $DB::query("SELECT * FROM items WHERE locations REGEXP '(^|[[.semicolon.]])%s([[.semicolon.]]|$)'" , $id);
$id 是整数。我得到错误:
QUERY: SELECT * FROM items WHERE location REGEXP '(^|[[.semicolon.]])'1'([[.semicolon.]]|$)' 错误:你有一个错误 在您的 SQL 语法中;检查与您的 MariaDB 对应的手册 服务器版本,以便在附近使用正确的语法 '1'([[.semicolon.]]|$)'' 在第 1 行
知道有什么问题吗?
【问题讨论】:
标签: php regex mariadb delimiter