Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL सड़क का पता अस्पष्ट खोज

हालांकि यह सही नहीं है और काफी धीमा हो सकता है, आप REGEXP() के माध्यम से एक रेगुलर एक्सप्रेशन का उपयोग करना चाहेंगे।

अधिकांश मामलों (साथ ही आपके उदाहरण) से मेल खाने के लिए यहां एक फर्स्ट-पास रेगुलर एक्सप्रेशन दिया गया है:

(?isx)                  # search across multiple lines and ignore case
(                       # full match
  (                       # st number - what about number words like one or two?
    \d+
  )
  \s+                     # whitespace
  (                       # street name (one or more words)
    [a-z]+
    (?:
      \s+
      [a-z]+
    )*
  )
  \s+                     # whitespace
  (                       # street type
    al(?:y\.?|ley)          # aly, aly. or alley
  |
    ave(?:\.|nue)?          # ave, ave., or avenue
  |
    b(?lvd\.?|oulevard)     # blvd, blvd. or boulevard
  |
    c(?:t\.?|ourt)          # ct, ct. or court
  |
    cir(?:\c\.?|cle)?       # cir, circ, circ. or circle
  |
    cres(?:\.|cent)?        # cres, cres. or crescent
  |
    dr(?:\.|ive)?           # dr, dr. or drive
  |
    exp(?:y\.?|ressway)     # expy, expy. or expressway
  |
    f(?:wy\.?|reeway)       # fwy, fwy. or freeway
  |
    g(?:rdns\.?|ardens)     # grdns, grdns. or gardens
  |
    h(?:wy\.?|ighway)       # hwy, hwy. or highway
  |
    l(?n\.?|ane)            # ln, ln. or land
  |
    m(?:nr\.?|anor)         # mnr, mnr. or manor
  |
    m(?:trwy\.?|otorway)    # mtrwy, wtrwy. or motorway
  |
    pl(?:\.|ace)?           # pl, pl. or place
  |
    r(?:d\.?|oad)           # rd, rd. or road
  |
    st(?:\.|reet)?          # st, st. or street
  |
    t(?:pk\.?|urnpike)      # tpk, tpk. or turnpike
  |
    ter(?:\r?\.?|race)      # ter, ter., terr, terr. or terrace
  |
    tr(?:l.\?|ail)          # trl, trl. or trail
  |
    pike|park|walk|loop|bay|close|gate|highlands
  |
    row|way|oval|dell|rise|vale|byway|lawn
  )
  \,?                     # optional comma
  \s+                     # whitespace
  (                       # optional number, unit, apt or floor
    (
      \#                    # number
    |
      unit                  # unit
    |
      num(?:\.|ber)         # num, num. or number
    |
      ap(?:t\.?|artment)    # apt, apt. or apartment
    |
      fl(?:\.|oor)?         # fl, fl. or floor
    )
    \s+
    \d+
  )?
)

जो लौटेगा:

$1 - पूरा मिलान

$2 - घर का नंबर

$3 - सड़क का नाम

$4 - सड़क का प्रकार

$5 - इकाई या उपयुक्त संख्या (वैकल्पिक)

MySQL में इसका उपयोग करने के लिए, आपको सभी टिप्पणियों ('#' से eol तक) को अलग करना होगा, पहली पंक्ति को हटाना होगा (विकल्प स्विच करें), और बिना किसी रिक्त स्थान के एक पंक्ति में सब कुछ संक्षिप्त करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वाक्पटु का उपयोग करके डेटाबेस संबंध के आधार पर JSON प्रतिक्रिया का आदेश कैसे दें

  2. PHP MySQL डीबी से परिणामों के क्रम को उलट देता है

  3. MySQL में एक विशिष्ट कॉलम के बाद कई कॉलम जोड़ना

  4. ग्राहक के लिए कई पतों और डिफ़ॉल्ट पते के लिए मैसकल डेटाबेस डिज़ाइन

  5. एक ऑटो-इंक्रीमेंटिंग आईडी कॉलम के साथ एक MySQL व्यू बनाना