如何在Elixir字符串中显示单个反斜杠

王志軍*_*王志軍 4 elixir

有人可以告诉我如何在Elixir的SQL语句中添加单个反斜杠

iex(1)> sql = "select * from user limit 1 \G;" "select * from user limit 1 G;" iex(2)> sql = "select * from user limit 1 \\G;" "select * from user limit 1 \\G;"

我只需要在我的sql语句中使用'\ G'

$ elixir -v Elixir 1.1.0-dev

事实上,我想使用mariaex库,但我仍然无法使其工作

defmodule Customer do

    def main(args) do

        sql = "SELECT name FROM user limit 3 \\G;"

        {:ok, p} = Mariaex.Connection.start_link(username: "root", password: "password", database: "user")

        res = Mariaex.Connection.query(p, sql )

        IO.inspect res
    end
end
Run Code Online (Sandbox Code Playgroud)

当我执行代码时它告诉我在'\ G'周围有一个语法错误

$ escript billutil
{:error,
 %Mariaex.Error{mariadb: %{code: 1064,
    message: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\\G' at line 1"},
  message: nil}}
Run Code Online (Sandbox Code Playgroud)

我应该如何格式化字符串?

sas*_*ric 8

你的第二次尝试是正确的.您在输出中看到两个反斜杠,因为它是一个检查输出(打印为Elixir术语).如果您尝试将该sql打印到控制台,您将看到一个反斜杠:

iex(1)> IO.puts("select * from user limit 1 \\G;")
select * from user limit 1 \G;
Run Code Online (Sandbox Code Playgroud)