MagExt
MagExt

Reputation: 222

Mysql get values from column having more than certain characters without punctuation

How can I get all the values from mysql table field, having more than 10 characters without any special characters (space, line breaks, colons, etc.)

Let's say I have table name myTable and the field I want to get values from is myColumn.

myColumn
--------
1234
------
123 456
------
123:456
-------
1234
5678
--------
123-456
----------------
1234567890123

So here I would like to get all the field values except first one i.e. 1234

Any help is much appreciated.

Thanks

UPDATE:

Sorry if I was unable to give proper description of my problem. I have tried it again:

Upvotes: 0

Views: 2753

Answers (2)

Barmar
Barmar

Reputation: 782693

SELECT MyColumn
From MyTable
WHERE MyColumn RLIKE '([a-z0-9].*){10}'
  • [a-z0-9] matches a normal character.
  • ([a-z0-9].*) matches a normal character followed by anything.
  • {10} matches the preceding regexp 10 times.

The result is that this matches 10 normal characters with anything between them.

Upvotes: 1

Gordon Linoff
Gordon Linoff

Reputation: 1271151

The logic seems to be "more than 10 characters OR has special punctuation":

where length(mycol) > 10 or
      mycol regexp '[^a-zA-Z0-9]'

Upvotes: 1

Related Questions