MariaDB에서 CONCAT()와 WHERE를 결합하는 방법
다른 쿼리의 결과를 사용하여 열 이름을 지정하고 싶습니다.이것을 위해 나는 사용하는 것을 좋아한다.CONCAT()
. 그러나 이 행은 동작하지 않습니다.이 행을 실행하면 0 행이 반환됩니다.
SELECT * FROM cover WHERE CONCAT('c','9') = 1;
사용하지 않을 때CONCAT()
완벽하게 동작합니다.
SELECT * FROM cover WHERE c9 = 1;
그리고 또CONCAT()
효과가 있는 것 같아요.이것으로 나는 결과를 얻을 수 있다.
SELECT CONCAT('c','9');
저는 이 질문에서 모든 솔루션을 시도했습니다.CONCAT 조건으로 MySQL 선택
이것처럼, 하지만 난 항상 0줄을 돌려받았어.
SELECT * FROM (
SELECT id, CONCAT('c', '9') as target
FROM cover) base
WHERE target = "1"
MySQL 버전은 10.1.16-Maria입니다.DB
배열이 여러 열에 분산되는 것은 잘못된 스키마 설계입니다.그리고 지금 보시는 것처럼 기둥을 사용하는 것은 어렵습니다.를 위해 다른 테이블을 만듭니다.c
가치.
아니면...
0/1 "열"이 많을 경우 다음을 고려하십시오.SET
또는BIGINT UNSIGNED
; 둘 중 하나는 공간의 극히 일부에 최대 64개의 부울 플래그를 보유합니다.그리고, 다른 코드로,BLOB
사용할 수 있습니다.
에서 비트 22를 추출하려면BIGINT
,((col >> 22) & 1)
0 또는 1이 됩니다.
를 사용하는 것을 검토하다case when
옵션의 수는 사전에 알고 있기 때문에(기존의 컬럼에만 액세스 할 수 있습니다).
SELECT id
FROM cover
WHERE case ?
when 1 then c1
when 2 then c2
when 9 then c9
end = 1
...여기서 물음표는 제공된 값입니다(예: 9).
언급URL : https://stackoverflow.com/questions/45909626/how-to-combine-concat-and-where-in-mariadb
'sourcecode' 카테고리의 다른 글
mysql 데이터베이스에 순위 저장 (0) | 2022.11.27 |
---|---|
git의 bash 스크립트에 mariadb 자격 증명을 저장하지 않는 방법 (0) | 2022.11.27 |
vuejs에서 http referre를 얻는 방법 (0) | 2022.11.27 |
열의 문자열에서 불필요한 부분 제거 (0) | 2022.11.27 |
독트린 하이드레이션이 뭐죠? (0) | 2022.11.27 |