私は最初の文字が数字であるかどうかを確認するためにmysqlスクリプトを書き込もうとしています、これは私がこれまでに行ったことです
select CASE WHEN user_id REGEXP '[0-9]+' then 1 else 0 end as user_id from table
すべてのデータを1として返します...列はvarcharです。このようなuser_id1234
またはこれUSER-484
または`ADMIN-464567'が可能になりますか?
これを試して、開始文字/数字が数字かどうかを確認してください。
select CASE WHEN user_id
REGEXP '^[0-9]+'
then 1 else 0 end as user_id
from table;
また
select CASE WHEN user_id
REGEXP '^\d+'
then 1 else 0 end as user_id
from table;
クエリの配置について疑問に思っています。こうあるべきだと思ったのですが、
select user_id
from table
where REGEXP '^\d+' ;
しかし、あなたのものは実際には正しいregex
. :)
代わりに user_id を表示しますか? 次に、正規表現をWHERE
句に入れます
select user_id from table
where
user_id REGEXP '^[0-9]+'
^
また、「行の先頭」を意味するa がありません
[0-9]の前に^がないため、フィールド内の任意の場所の数値と一致します。^ [0-9]を指定すると、数字で始まる必要があることを意味します。したがって、「^[0-9]」を使用してみてください