使用crate.io SQL进行文本大小写搜索

时间:2016-04-17 22:41:37

标签: sql crate

using UnityEngine; public class PlayerControl : MonoBehaviour { public float ForwardSpeed = 3.7f; //moves player in forward direction public float speedOffset = 0.0f; //offset speed of player public float JumpHeight = 250; //moves player in verticle direction bool grounded = false; //checks if player is grounded or not public Transform groundCheck; float groundCheckRadius = 0.3f; //radius of groundcheck circle to check grounded bool public LayerMask groundLayer; Vector2 fingerStart; Vector2 fingerEnd; void Update() { foreach (Touch touch in Input.touches) { if (touch.phase == TouchPhase.Began) { fingerStart = touch.position; fingerEnd = touch.position; } if (touch.phase == TouchPhase.Moved) { fingerEnd = touch.position; if (Mathf.Abs(fingerEnd.y - fingerStart.y) > 50)//Vertical swipe { if (fingerEnd.y - fingerStart.y > 50)//up swipe { Jump(); } else if (fingerEnd.y - fingerStart.y < -50)//Down swipe { //Slide(); } fingerStart = touch.position; } } if (touch.phase == TouchPhase.Stationary) { RunFast(); } if (touch.phase == TouchPhase.Ended) { fingerEnd = touch.position; if (Mathf.Abs(fingerEnd.y - fingerStart.y) > 50)//Vertical swipe { if (fingerEnd.y - fingerStart.y > 50)//up swipe { Jump(); } else if (fingerEnd.y - fingerStart.y < -50)//Down swipe { //Slide(); } } } } if (Input.GetButton("Fire1")) { speedOffset = 2.5f; } else { speedOffset = 0.0f; } if (grounded && Input.GetKeyDown(KeyCode.UpArrow)) { grounded = false; GetComponent<Rigidbody2D>().AddForce(new Vector2(0, JumpHeight)); } //check if circle overlaps with ground layer grounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayer); //Debug.Log(grounded); } void FixedUpdate() { //set players forward velocityto forward speed variable Vector2 PlayerForwardvelocity = GetComponent<Rigidbody2D>().velocity; // Vector2 PlayerJumpHeight = GetComponent<Rigidbody2D>().AddForce() PlayerForwardvelocity.x = ForwardSpeed + speedOffset; GetComponent<Rigidbody2D>().velocity = PlayerForwardvelocity; } void Jump() { if (grounded) { GetComponent<Rigidbody2D>().AddForce(new Vector2(0, JumpHeight)); speedOffset = 0.0f; } } void RunFast() { if (Input.GetButton("Fire1")) { speedOffset = 2.5f; } else { speedOffset = 0.0f; } } } 中搜索数组文本的正确SQL语法是什么?

我的示例表是:

crate database

我尝试了下面的语法错误:

create table 
tasks(user string, entry array(object as (taskid string, eTime timestamp))).  

1 个答案:

答案 0 :(得分:0)

ANY operator的正确语法是:

SELECT * FROM tasks WHERE '.*cleanup.*' ~* ANY(entry['taskid']);

但是,PCRE目前不支持ANY。另一种选择是LIKE谓词,但这不是不区分大小写的(如果以通配符开头,则可能很慢);

所以最终,你可以......

...使用entry['taskid']列上的fulltext index使用lowercase analyzer(这可能不是最佳解决方案,因为我认为taskid只是一个单词并且你想“按原样”使用它,

...或者将数组值拆分为单独的行,这样就可以得到如下模式:

CREATE TABLE tasks (
  user string,
  entry OBJECT AS (
    taskid STRING,
    etime TIMESTAMP
  )
) ...

你可以使用

SELECT * FROM tasks WHERE entry['taskid'] ~* '.*cleanup.*';
相关问题