diff --git a/python/py-oursql/Portfile b/python/py-oursql/Portfile
index bc7e351add..fbf9b4c62c 100644
--- a/python/py-oursql/Portfile
+++ b/python/py-oursql/Portfile
@@ -47,41 +47,33 @@ if {${name} ne ${subport}} {
                             sha256  58c12b577804b1d0174536ed075d31d27346aa9efc686482f99b265e5a1fa984
     }
 
-    variant mysql5 conflicts mysql51 mysql55 mysql56 mariadb percona description {Build with MySQL 5} {
-        depends_lib-append  port:mysql5
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql5/bin/mysql_config
-    }
-    variant mysql51 conflicts mysql5 mysql55 mysql56 mariadb percona description {Build with MySQL 5.1} {
-        depends_lib-append  port:mysql51
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql51/bin/mysql_config
-    }
-    variant mysql55 conflicts mysql5 mysql51 mysql56 mariadb percona description {Build with MySQL 5.5} {
-        depends_lib-append  port:mysql55
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql55/bin/mysql_config
-    }
-    variant mysql56 conflicts mysql5 mysql51 mysql55 mariadb percona description {Build with MySQL 5.6} {
-        depends_lib-append  port:mysql56
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/mysql56/bin/mysql_config
-    }
-    variant mariadb conflicts mysql5 mysql51 mysql55 mysql56 percona description {Build with MariaDB} {
-        depends_lib-append  port:mariadb
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/mariadb/bin/mysql_config
+    set db_ports {mariadb mariadb-10.0 mariadb-10.1 mariadb-10.2 mysql51 mysql55 mysql56 mysql57 percona}
+    set db_variants [string map {- {}} ${db_ports}]
+    proc db_variant_isset {} {
+        global db_variants
+        foreach db_variant ${db_variants} {
+            if [variant_isset ${db_variant}] {
+                return yes
+            }
+        }
+        return no
     }
-    variant percona conflicts mysql5 mysql51 mysql55 mysql56 mariadb description {Build with Percona} {
-        depends_lib-append  port:percona
-        build.env-append    MYSQL_CONFIG=${prefix}/lib/percona/bin/mysql_config
+    foreach db_port ${db_ports} {
+        set db_type [regsub -nocase {[^a-z].*$} ${db_port} {}]
+        set db_index [lsearch -exact ${db_ports} ${db_port}]
+        set db_variant [lindex ${db_variants} ${db_index}]
+        set db_conflicts [lreplace ${db_variants} ${db_index} ${db_index}]
+        variant ${db_variant} description "Build with ${db_port}" conflicts {*}${db_conflicts} "
+            depends_lib-append  port:${db_port}
+            build.env-append    MYSQL_CONFIG=${prefix}/lib/${db_port}/bin/mysql_config
+        "
     }
 
-    proc no_variant_set {} {
-        return [expr {!([variant_isset mysql5] || [variant_isset mysql51] ||
-                        [variant_isset mysql55] || [variant_isset mysql56] ||
-                        [variant_isset mariadb] || [variant_isset percona])}]
-    }
-    if {[no_variant_set]} {
-        default_variants +mysql5
+    if {![db_variant_isset]} {
+        default_variants +mariadb10.2
     }
     pre-fetch {
-        if {[no_variant_set]} {
+        if {![db_variant_isset]} {
             return -code error "Variant selection required"
         }
     }
