Есть несколько библиотеков Activerecord Styleled Query Builder. Некоторые стоят одинокие, а некоторые встроены в рамки. Тем не менее, у них действительно есть проблемы с тем, где и наличие предложений, когда дело доходит до сложного SQL. Установка других баз данных - я пытаюсь придумать метод MySQL и PostgreSQL, где () метод, который мог бы исправить эти текущие падения метода. Тем не менее, я не могу решить все варианты использования , и я чувствую, что мое частичное решение небрежно. Любой, кто может ответить на что -то, что решает все эти проблемы, не только ответит на этот вопрос, но и будет отвечать за решение проблемы, которая уже несколько лет преследует реализации PHP.
= Equal
Not Equal
> Greater Than
< Less Than
>= Greater Than Or Equal
5
WHERE column IS NULL
WHERE column IN (1, 2, 3)
WHERE column NOT IN (1, 2, 3)
WHERE column IN (SELECT column FROM t2)
WHERE column IN (SELECT c3 FROM t2 WHERE c2 = table.column + 10)
WHERE column BETWEEN 32 AND 34
WHERE column BETWEEN (SELECT c3 FROM t2 WHERE c2 = table.column + 10) AND 100
WHERE EXISTS (SELECT column FROM t2 WHERE c2 > table.column)
Существует много общих форматов Activerecord, которые предложение Where () использует в различных библиотеках Current .
$this->db->where(array('session_id' => '?', 'username' => '?'));
$this->db->fetch(array($id, $username));
// vs with is_int($key)
$this->db->where(array('session_id', 'username'));
$this->db->fetch(array($id, $username));
// vs with is_string($where)
$this->db->where('session_id', '?');
$this->db->where('username');
$this->db->fetch(array($id, $username));
// vs with is_array($value)
$this->db->where('session_id', '?');
$this->db->where('username', array('Sam', 'Bob'));
$this->db->fetch(array($id));
< /code>
Вот окончательный формат, который у меня есть до сих пор. Он должен обрабатывать группировку (...) и (...)
, а также подготовленные операторы, связанные с гранижными параметрами ("?" & ": Имя").
function where($column, $op = '=', $value = '?', $group = FALSE){}
// Single line
$this->db->where('column > 5');
$this->db->where('column IS NULL');
// Column + condition
$this->db->where('column', '=');
// WHERE column = ? (prepared statement)
$this->db->where('column', '');
// WHERE column ? (prepared statement)
// Column + condition + values
$this->db->where('column', '=', 5);
// // WHERE column = 5
$this->db->where('column', 'IN', '(SELECT column FROM t2)');
// WHERE column IN (SELECT column FROM t2)
$this->db->where('column', 'IN', array(1,2,3));
// WHERE column IN (1, 2, 3)
$this->db->where('column', 'NOT IN', array(1,2,3));
// WHERE column NOT IN (1, 2, 3)
// column + condition + values + group
$this->db->where(
array(
array('column', '', 10)
),
NULL,
NULL,
$group = TRUE
);
// WHERE (column < 20 AND column > 10)
: update:
В ходе моего вопроса я понял, что, где и наличие условий становятся все более сложными, чем глубже вы идете. Попытка абстрагировать даже 80% функций приведет к огромной библиотеке только для того, где и иметь. Как отмечает Билл, это просто не разумно для языка сценариев, такого как Php. Пока вы используете « вокруг своих столбцов, вы можете использовать то же самое, где запрос в постгре, SQLite и MySQL, поскольку они используют почти один и тот же синтаксис SQL. (Для MySQL вы должны str_replace () с тика>
Есть несколько библиотеков Activerecord Styleled Query Builder. Некоторые стоят одинокие, а некоторые встроены в рамки. Тем не менее, у них действительно есть проблемы с тем, где и наличие предложений, когда дело доходит до сложного SQL. Установка других баз данных - я пытаюсь придумать метод MySQL и PostgreSQL, где () метод, который мог бы исправить эти текущие падения метода. Тем не менее, я не могу решить все варианты использования , и я чувствую, что мое частичное решение небрежно. Любой, кто может ответить на что -то, что решает все эти проблемы, не только ответит на этот вопрос, но и будет отвечать за решение проблемы, которая уже несколько лет преследует реализации PHP.[code] = Equal Not Equal > Greater Than < Less Than >= Greater Than Or Equal 5 WHERE column IS NULL WHERE column IN (1, 2, 3) WHERE column NOT IN (1, 2, 3) WHERE column IN (SELECT column FROM t2) WHERE column IN (SELECT c3 FROM t2 WHERE c2 = table.column + 10) WHERE column BETWEEN 32 AND 34 WHERE column BETWEEN (SELECT c3 FROM t2 WHERE c2 = table.column + 10) AND 100 WHERE EXISTS (SELECT column FROM t2 WHERE c2 > table.column) [/code] Существует много общих форматов Activerecord, которые предложение Where () использует в различных библиотеках Current . [code]$this->db->where(array('session_id' => '?', 'username' => '?')); $this->db->fetch(array($id, $username));
// vs with is_int($key) $this->db->where(array('session_id', 'username')); $this->db->fetch(array($id, $username));
// vs with is_string($where) $this->db->where('session_id', '?'); $this->db->where('username'); $this->db->fetch(array($id, $username));
// vs with is_array($value) $this->db->where('session_id', '?'); $this->db->where('username', array('Sam', 'Bob')); $this->db->fetch(array($id)); < /code> Вот окончательный формат, который у меня есть до сих пор. Он должен обрабатывать группировку (...) и (...) [/code], а также подготовленные операторы, связанные с гранижными параметрами ("?" & ": Имя"). [code]function where($column, $op = '=', $value = '?', $group = FALSE){}
// Single line
$this->db->where('column > 5'); $this->db->where('column IS NULL');
// Column + condition
$this->db->where('column', '='); // WHERE column = ? (prepared statement) $this->db->where('column', ''); // WHERE column ? (prepared statement)
// Column + condition + values
$this->db->where('column', '=', 5); // // WHERE column = 5 $this->db->where('column', 'IN', '(SELECT column FROM t2)'); // WHERE column IN (SELECT column FROM t2) $this->db->where('column', 'IN', array(1,2,3)); // WHERE column IN (1, 2, 3) $this->db->where('column', 'NOT IN', array(1,2,3)); // WHERE column NOT IN (1, 2, 3)
// column + condition + values + group $this->db->where( array( array('column', '', 10) ), NULL, NULL, $group = TRUE ); // WHERE (column < 20 AND column > 10) [/code] [b]: update: [/b] В ходе моего вопроса я понял, что, где и наличие условий становятся все более сложными, чем глубже вы идете. Попытка абстрагировать даже 80% функций приведет к огромной библиотеке только для того, где и иметь. Как отмечает Билл, это просто не разумно для языка сценариев, такого как Php. Пока вы используете « вокруг своих столбцов, вы можете использовать то же самое, где запрос в постгре, SQLite и MySQL, поскольку они используют почти один и тот же синтаксис SQL. (Для MySQL вы должны str_replace () с тика>
Есть несколько библиотеков Activerecord Styleled Query Builder. Некоторые стоят одинокие, а некоторые встроены в рамки. Тем не менее, у них действительно есть проблемы с тем, где и наличие предложений, когда дело доходит до сложного SQL. Установка...
Есть несколько библиотеков Activerecord Styleled Query Builder. Некоторые стоят одинокие, а некоторые встроены в рамки. Тем не менее, у них действительно есть проблемы с тем, где и наличие предложений, когда дело доходит до сложного SQL. Установка...
Есть несколько библиотеков Activerecord Styleled Query Builder. Некоторые стоят одинокие, а некоторые встроены в рамки. Тем не менее, у них действительно есть проблемы с тем, где и наличие предложений, когда дело доходит до сложного SQL. Установка...
У меня проблема с сравнением дат в базе данных до недели, используя Activerecord. Я пытаюсь вернуть список событий с датой начала менее чем через неделю.$this->db->select('event_id,title,event_start_date,location');...
Я знаю, как присоединиться к двум таблицам, но я хотел бы на самом деле подсчитать количество строк в соединенной/второй таблице с методами строителя запросов codeigniter. blog comments
------- ----------
id id
title blog_entry_id
content comment...