WHERE子句中的MySQL CAST和LIKE

时间:2016-03-02 17:28:17

标签: mysql

我想在MySQL中编写以下查询并不断收到错误。我不知道出了什么问题,我觉得一切都很好。

查询:

SELECT 
    *
FROM 
    client
WHERE
    id IN (
        SELECT 
            client_id 
        FROM 
            url 
        WHERE 
            ',1,2,' LIKE '%,' + CAST(url_type_id AS CHAR(50)) + ',%'
        )

它必须与“'%,'+”部分有关,但老实说我不明白

1 个答案:

答案 0 :(得分:2)

您必须使用CONCAT()加入2个字符串而不是“+”,这是您要查找的查询

Rigidbody _rigidBody;
Transform _meshTransform;
bool _sticksToObjects = true;

public Transform _stuckTo = null;
protected Vector3 _offset = Vector3.zero;

void Awake()
{
    GameObject CubeMesh = GameObject.FindWithTag ("CubeMesh");
    GameObject Cube = GameObject.FindWithTag ("Cube");

    _rigidBody = Cube.GetComponent<Rigidbody> ();
    _meshTransform = CubeMesh.GetComponent<Transform> ();
}

void Update() 
{
    if (_stuckTo != null)
    {
        transform.position = _stuckTo.position - _offset;
    }
}

void OnCollisionEnter(Collision collision)
{
        if (!_sticksToObjects) {
            return;
        }

        _rigidBody.isKinematic = true;

        // Get the approximate collision point and normal, as there
        // may be multipled collision points
        Vector3 contactPoint = Vector3.zero;
        Vector3 contactNormal = Vector3.zero;
        for (int i = 0; i < collision.contacts.Length; i++) {
            contactPoint += collision.contacts [i].point;
            contactNormal += collision.contacts [i].normal;
        }

        // Get the final, approximate, point and normal of collision
        contactPoint /= collision.contacts.Length;
        contactNormal /= collision.contacts.Length;

        // Move object to the collision point
        // This acts as setting the pivot point of the cube mesh to the collision point
        transform.position = contactPoint;

        // Adjust the local position of the cube so it is flush with the pivot point
        Vector3 meshLocalPosition = Vector3.zero;

        // Move the child so the side is at the collision point.
        // A x local position of 0 means the child is centered on the parent,
        // a value of 0.5 means it's to the right, and a value of -0.5 means it to the left
        meshLocalPosition.x = (0.5f * contactNormal.x);
        _meshTransform.localPosition = meshLocalPosition;

        if (_stuckTo == null || _stuckTo != collision.gameObject.transform) {
            _offset = collision.gameObject.transform.position - transform.position;
        }

        _stuckTo = collision.gameObject.transform;
    }