title: Knex where doesn't allow passing single string to `.where()`
body: <p>I have the following line in a program written in Node.js using Knex and SQLite:</p>
  
  <pre><code>await db.table("books")
           .innerJoin("items", "items.id", "books.item_id")
           .with("idx", db.raw(`instr(items.name, ?) asc`, name))
           .where("idx &gt; 0")
           .orderBy("idx")
           .select()
  </code></pre>
  
  <p>Where <code>db</code> is a variable created by calling <code>knex(config)</code>. However, the function <code>raw(sql)</code> doesn't seem to work, as it keeps throwing this error at runtime:</p>
  
  <blockquote>
    <p>TypeError: The operator "undefined" is not permitted
        at Formatter.operator (I:\git\server\node_modules\knex\lib\formatter.js:138:13)</p>
    
    <p>at QueryCompiler_SQLite3.whereBasic (I:\git\server\node_modules\knex\lib\query\compiler.js:525:100)</p>
    
    <p>at QueryCompiler_SQLite3.where (I:\git\server\node_modules\knex\lib\query\compiler.js:314:32)</p>
  </blockquote>
  
  <p>What am I doing incorrectly?</p>
  
  <p>If it's relevant, I'm writing in Typescript, and as you can see with <code>await</code>, I am using ES6. However, this query executes fine if I exclude the <code>with()</code>, and <code>with()</code> refuses to accept something that is not created by <code>raw()</code>.</p>
  
  <p>Edit:</p>
  
  <p>If I test this, it shows that the problem is in <code>with()</code> and not in <code>raw()</code>:</p>
  
  <pre><code>console.log("name: " + name);
  console.log("db.raw(name): " + db.raw(`instr(items.name, ?) asc`, name));
  </code></pre>
  
  <p>Gives the expected output.</p>