반응형
regexp 파라미터로 SELECT를 수신하면 교대로만 작동합니다(홀수 시간만).
이 절차가 왜 이런 동작을 하는지 설명할 수 있는 사람이 있습니까? (1일, 3일, 5일에만 작동...시간)?
MariaDB [mydatabase]> CALL StrangerThings();
+-----------------+
| address |
+-----------------+
| Prefix |
| Prefix > Suffix |
+-----------------+
2 rows in set (0.001 sec)
Query OK, 0 rows affected (0.001 sec)
MariaDB [mydatabase]> CALL StrangerThings();
Empty set (0.000 sec)
Query OK, 0 rows affected, 3 warnings (0.000 sec)
MariaDB [mydatabase]> CALL StrangerThings();
+-----------------+
| address |
+-----------------+
| Prefix |
| Prefix > Suffix |
+-----------------+
2 rows in set (0.001 sec)
Query OK, 0 rows affected (0.001 sec)
MariaDB [mydatabase]> CALL StrangerThings();
Empty set (0.000 sec)
Query OK, 0 rows affected, 3 warnings (0.000 sec)
MariaDB [mydatabase]> SHOW WARNINGS;
+---------+------+------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------+
| Warning | 1139 | Regex error 'NULL argument passed' |
| Warning | 1139 | Regex error 'NULL argument passed' |
| Warning | 1139 | Regex error 'NULL argument passed' |
+---------+------+------------------------------------+
3 rows in set (0.000 sec)
CREATE PROCEDURE `StrangerThings`()
BEGIN
SELECT p1.address
FROM (
SELECT 'Prefix' as 'address' UNION
SELECT 'Prefix > Suffix' as 'address' UNION
SELECT 'Another Prefix > Suffix > Last' as 'address'
) p1
WHERE
-- p1.address regexp ('^Prefix');
p1.address regexp (SELECT ('^Prefix'));
END
이 줄을 바꿀 경우p1.address regexp (SELECT ('^Prefix'));
이번에는p1.address regexp ('^Prefix');
잘 작동하고 매번 동일한 예상 결과를 출력합니다.
중요 참고 사항:
- Percona XtraDB 클러스터를 사용하여 예상대로 작동합니다(그러나 MariaDB에서 실행하려면 필요합니다).
- RLIKE 함수는 regexp와 동일한 결과를 출력합니다.
- CentOS 7에서 실행 중인 10.5.5-MariaDB 로그
- 여기서 이 관련 질문을 보았지만 답이 없기 때문에 새로운 질문을 만드는 데 더 많은 정보를 넣으려고 했습니다.
언급URL : https://stackoverflow.com/questions/64144853/regexp-receiving-select-as-param-only-works-alternately-only-odd-times
반응형
'source' 카테고리의 다른 글
MySql 트랜잭션은 콘솔에서만 작동합니다. (0) | 2023.09.04 |
---|---|
경고:창 계층 구조에 없는 *에 * 표시 시도 - swift (0) | 2023.09.04 |
JSON.parse()가 작동하지 않습니다. (0) | 2023.09.04 |
파워셸 최대/첫 번째/두 번째 기능 (0) | 2023.09.04 |
PHP mysqli_query 및 MariaDB 명령줄에서 거부된 특수 라틴 문자의 전자 메일 헤더를 사용한 쿼리는 HeyidSQL에서 작동합니다. (0) | 2023.09.04 |