Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 合并两列并搜索它们_Elixir_Ecto - Fatal编程技术网

Elixir 合并两列并搜索它们

Elixir 合并两列并搜索它们,elixir,ecto,Elixir,Ecto,我有一个查询,我们可以根据名字和姓氏进行搜索。它的工作原理如下: |> where( [user], ilike(user.first_name, ^string) or (user.last_name, ^string) ) 它很好用。现在我想搜索全名,即名+姓。我尝试过博士后的这种方法。如果我在这个查询中同时传递名字和姓氏,它将返回空 |> where( [user], ilike(user.first_name, ^string) or ilik

我有一个查询,我们可以根据
名字和姓氏进行搜索。它的工作原理如下:

  |> where(
  [user],
   ilike(user.first_name, ^string) or (user.last_name, ^string) 
 )
它很好用。现在我想搜索全名,即
名+姓
。我尝试过博士后的这种方法。如果我在这个查询中同时传递名字和姓氏,它将返回空

 |> where(
  [user],
   ilike(user.first_name, ^string) or ilike(user.last_name, ^string) or ilike(fragment("(?)||' '||(?)", user.first_name, user.last_name), ^string)
 )
但它不起作用。没有结果。 我有什么遗漏吗? 谢谢

看来

         ilike(fragment(“CONCAT((?), ’ ',(?))”, user.first_name, user.last_name), ^string)

在这种情况下,[可以说]更常见的方法是使用

|>其中([user],ilike(user.first_name,^string))
|>或_其中([user],ilike(user.last_name,^string))
|>或_其中([用户]),ilike(片段)(“CONCAT((?),”,(?)”,
user.first(用户名,user.last(用户名),^string))

语法似乎是正确的。我认为问题在于SQL级别。使用原始SQL确保查询正常工作。您可以使用PG模式匹配操作符来确保这些东西按预期工作。